문제

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 내년 첫 주가 어디에서 시작되는지 알아 내고 그 전날이 걸리는 방법.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top