한 달의 마지막 날을 어떻게 얻을 수 있습니까?
C#에서 해당 달의 마지막 날을 어떻게 찾을 수 있습니까?
예를 들어, 날짜가 1980년 3월 8일인 경우 8월의 마지막 날(이 경우 31)은 어떻게 얻을 수 있습니까?
이 달의 마지막 날은 31을 반환합니다.
DateTime.DaysInMonth(1980, 08);
var lastDayOfMonth = DateTime.DaysInMonth(date.Year, date.Month);
만약 당신이 날짜를 원한다면, 한 달과 일 년을 고려하면, 이것은 거의 맞는 것 같습니다.
public static DateTime GetLastDayOfMonth(this DateTime dateTime)
{
return new DateTime(dateTime.Year, dateTime.Month, DateTime.DaysInMonth(dateTime.Year, dateTime.Month));
}
다음 달 1일부터 하루 차감:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month+1,1).AddDays(-1);
또한 12월에도 작업을 위해 필요한 경우:
DateTime lastDay = new DateTime(MyDate.Year,MyDate.Month,1).AddMonths(1).AddDays(-1);
다음 코드로 모든 달의 마지막 날짜를 찾을 수 있습니다.
var now = DateTime.Now;
var startOfMonth = new DateTime(now.Year, now.Month, 1);
var DaysInMonth = DateTime.DaysInMonth(now.Year, now.Month);
var lastDay = new DateTime(now.Year, now.Month, DaysInMonth);
// Use any date you want, for the purpose of this example we use 1980-08-03.
var myDate = new DateTime(1980,8,3);
var lastDayOfMonth = new DateTime(myDate.Year, myDate.Month, DateTime.DaysInMonth(myDate.Year, myDate.Month));
한 줄의 코드로 해당 달의 마지막 날을 찾을 수 있습니다.
int maxdt = (new DateTime(dtfrom.Year, dtfrom.Month, 1).AddMonths(1).AddDays(-1)).Day;
다음과 같이 DateTime을 확장할 수 있습니다.
public static class DateTimeMethods
{
public static DateTime StartOfMonth(this DateTime date)
{
return new DateTime(date.Year, date.Month, 1, 0, 0, 0);
}
public static DateTime EndOfMonth(this DateTime date)
{
return date.StartOfMonth().AddMonths(1).AddSeconds(-1);
}
}
다음과 같이 사용합니다.
DateTime today = DateTime.Now;
DateTime startOfMonth = today.StartOfMonth();
DateTime endOfMonth = today.EndOfMonth();
부터DateTimePicker:
첫 번째 날짜:
DateTime first_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, 1);
마지막 날짜:
DateTime last_date = new DateTime(DateTimePicker.Value.Year, DateTimePicker.Value.Month, DateTime.DaysInMonth(DateTimePicker.Value.Year, DateTimePicker.Value.Month));
다음 달의 마지막 날짜가 표시됩니다.Add Months(x)에서 반환할 월을 추가하거나 빼서 반환할 월을 추가할 수 있습니다.
DateTime.Now.AddMonths(2).AddDays(-DateTime.Now.Day)
05/07/2021 예시
날짜 시간.지금. 데이;
결과: 5
날짜 시간.이제 월(+1)을 추가합니다.Add Days(-DateTime).지금. 낮).ToString("yyyy-MM-dd");
결과: 2021/07/31
특정 일정관리 및 확장 방법에서 월의 마지막 날을 가져오려면 다음과 같이 하십시오.
public static int DaysInMonthBy(this DateTime src, Calendar calendar)
{
var year = calendar.GetYear(src); // year of src in your calendar
var month = calendar.GetMonth(src); // month of src in your calendar
var lastDay = calendar.GetDaysInMonth(year, month); // days in month means last day of that month in your calendar
return lastDay;
}
종료 날짜를 가져오는 또 다른 방법:
private static DateTime GetMonthEndDate(DateTime date)
{
DateTime endDate = date;
int endDateMonth = endDate.Month;
while (endDateMonth == endDate.Month)
endDate = endDate.AddDays(1);
endDate = endDate.AddDays(-1);
return endDate;
}
매달 마지막 날에만 코드를 발사하고 싶었어요 이렇게 간단하죠
if (DateTime.UtcNow.AddDays(1).Day != 1)
{
// Tomorrow is not the first...
return;
}
C#에 대해서는 잘 모르지만 API를 쉽게 얻을 수 있는 방법이 없다면 논리를 따르는 것이 좋습니다.
today -> +1 month -> set day of month to 1 -> -1 day
물론, 그것은 당신이 그런 유형의 날짜 수학을 가지고 있다고 가정합니다.
이 공식은 세 번째 달의 마지막 날(이 예에서)을 얻기 위한 간단한 솔루션으로서의 @RHSeeger의 생각을 반영합니다(그 달의 첫 번째 날에서 1일을 뺀 셀 A1 + 4의 날짜).
=DATE(YEAR(A1);MONTH(A1)+4;1)-1
매우 정확하고, 윤년의 2월을 포함합니다 :)
언급URL : https://stackoverflow.com/questions/2493032/how-do-i-get-the-last-day-of-a-month
'programing' 카테고리의 다른 글
클래스 기반 보기 VS 기능 기반 보기 (0) | 2023.05.11 |
---|---|
다중 행 문자열에서 지정한 열을 쉼표로 구분된 단일 행으로 변환 (0) | 2023.05.11 |
의 문자열에서 URL 매개 변수를 가져옵니다.그물 (0) | 2023.05.11 |
데이터 테이블:행 이름 및 열 이름으로 항목 값을 가져오는 방법(VB) (0) | 2023.05.11 |
npm이 프록시 뒤에서 작업할 수 있도록 설치(명령)하는 방법이 있습니까? (0) | 2023.05.11 |