일반적으로 아래 코드를 사용하지만 더 좋은 방법이 있습니까?.NET의 월 마지막 날
lastOfMonth = new DateTime(Now.Year, Now.Month, 1).AddMonths(1).AddDays(-1)
일반적으로 아래 코드를 사용하지만 더 좋은 방법이 있습니까?.NET의 월 마지막 날
lastOfMonth = new DateTime(Now.Year, Now.Month, 1).AddMonths(1).AddDays(-1)
나는 그것을 만들면서
DateTime now = DateTime.Today;
var lastDate = new DateTime(now.Year, now.Month, DateTime.DaysInMonth(now.Year, now.Month));
DateTime(year, month, DateTime.DaysInMonth(year, month)).
당신은 CultureInfo.CurrentCulture.Calendar.GetDaysInMonth (Now.Year, Now.Month)
아마 DaysInMonth
을 사용을 사용할 수 있습니다 사용 코드는 좀 더 읽기 쉽고 이해하기 쉽습니다 (비록 내가 당신의 트릭을 정말 좋아합니다 :-)). 이 입력 비슷한 액수를 (꽤 많은 인) requieres, 그래서 아마 확장 메서드를 정의 할 :
DateTime LastDayOfMonth(this DateTime) {
var days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
return new DateTime(DateTime.Now.Year, DateTime.Now.Month, days);
}
이제 우리는 훨씬 더 :-) 보이는 DateTime.Now.LastDayOfMonth()
을 사용할 수 있습니다.
int days = CalendarSystem.Iso.GetDaysInMonth(year, month);
은 매우 간단, 어 : 여기
는 Noda Time를 사용하여 월의 일 수를 얻을 수있는 방법인가? 글쎄, 당신이 물어 보는 년과 달을 알고 있다고 가정합니다. 당신은 현재개월 위해 그것을 원하고 시스템의 시간대에, 당신은 다음과 같이 명시 적으로 지정할 필요가있는 경우 :
DateTimeZone tz = DateTimeZoneProviders.Tzdb.GetSystemDefault();
LocalDate localDate = SystemClock.Instance.Now.InZone(tz).Date;
int days = localDate.Calendar.GetDaysInMonth(localDate.Year, localDate.Month);
노다 시간이 의도적으로 당신이 대신에, 이러한 것들에 대해 생각하게
그냥 DateTime.Now
또는 DateTime.Today
이라는 가정을합니다.
"더 좋음"을 정의하십시오. –
API가 제공하는 함수 만 더 나은 일을한다고 생각합니다. –
특정 시간을 원하십니까? 그렇지 않다면, 오늘이 아니라 오늘을 사용해야합니다. –