C#에서 1 년의 지난 일요일
-
07-07-2019 - |
문제
C#에서 1 년의 지난 일요일 날짜를 어떻게 얻을 수 있습니까 ?? GregorianCalendar 클래스가 도움이됩니까?
해결책
그 방법이 있는지는 모르겠지만 간단한 방법은 12 월의 마지막 7 일을 31 일부터 시작하여 계산하는 것입니다.
업데이트: 실제로 요일이 다음과 같이 번호가 매겨지면 :
0 Sun, 1 Mon, ... 6 Sat
그 다음에
lastSunday = 31 - DayOfWeek(31, 12, 2009) // pseudocode
다른 팁
가장 좋은 해결책은 아니지만 작동해야합니다.
int year = 2009;
DateTime lastSunday = new DateTime(year, 12, 31);
while (lastSunday.DayOfWeek != DayOfWeek.Sunday)
{
lastSunday = lastSunday.AddDays(-1);
}
나는 당신이 DayOfWeek
이것에 대한 열거 :
DateTime endOfYear = new DateTime(DateTime.Now.Year, 12, 31);
DateTime lastSunday = endOfYear.AddDays(-(int)endOfYear.DayOfWeek);
열거로 주간 일요일에 0에서 시작하면 다음과 같습니다.
int Year = 2009;
DateTime endOfYear = new DateTime(Year, 12, 31);
DateTime sunday = endOfYear.AddDays(-(int)endOfYear.DayOfWeek);
12 월 31 일의 요일을 찾을 수 있습니다. 그런 다음 (일요일이 아닌 경우) 다시 계산합니다 ...
for (int y=2009; y<=2018; y++)
{
DateTime dt = new DateTime(y, 12, 31); // last day of year
dt = dt.AddDays(-(int)dt.DayOfweek); // sun == 0, so then no change
Console.WriteLine(dt.ToString("dddd dd-MM-yyyy"));
}
죄송하지만 C# 버전이 없으면 보면 여기 VB 버전의 경우. 나는 당신이 그것을 변환 할 수 있다고 생각합니다.
그게 다릅니다 ... 당신은 일요일 또는 올해의 마지막 주 일요일 인 연중 마지막 날을 원하십니까? 귀하의 국가에서 몇 주가 결정되는 방식에 따라, 연중 마지막 주는 내년까지 최대 6 일 동안 올라갈 수 있습니다.
첫 번째를 원한다면 12 월 31 일에 시작하여 일요일을 찾을 때까지 돌아갈 수 있습니다.
두 번째를 원한다면 사용해야합니다. System.Globalizartion.Calendar.GetWeekOfYear
내년 첫 주가 어디에서 시작되는지 알아 내고 그 전날이 걸리는 방법.
제휴하지 않습니다 StackOverflow