fork(1) download
  1. using System;
  2. using System.Linq;
  3. using System.Globalization;
  4.  
  5. public class Test {
  6.  
  7. public static void Main() {
  8. Calendar calendar = new GregorianCalendar();
  9. int weekNumber = 10;
  10.  
  11. for (int year = 1900; year < 2012; ++year) {
  12. DateTime blue = calendar.GetFirstDayDateOfWeek(CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday, weekNumber, year);
  13. DateTime sehn = calendar.GetDateOfWeekNumber(DayOfWeek.Monday, weekNumber, year);
  14. Display(blue, "Bluedeep");
  15. Display(sehn, "Sehnsucht");
  16. Console.WriteLine();
  17. }
  18. }
  19.  
  20. public static void Display(DateTime dt, string owner) {
  21. Console.WriteLine("{0}:\t{1:MM/dd/yyyy (dddd)}", owner, dt);
  22. }
  23. }
  24.  
  25. public static class CalendarExtension {
  26. #region Bluedeep's code
  27. public static DateTime GetFirstDayDateOfFirstWeek(this Calendar calendar, CalendarWeekRule weekRule, DayOfWeek dayOfWeek, int year) {
  28. DateTime dtFirstDayFirstWeek = DateTime.MinValue;
  29. for (int iWeek = 0, iDay = 1; iWeek != 1; ++iDay) {
  30. dtFirstDayFirstWeek = new DateTime(year, 1, iDay);
  31. iWeek = calendar.GetWeekOfYear(dtFirstDayFirstWeek, weekRule, dayOfWeek);
  32. }
  33. return dtFirstDayFirstWeek;
  34. }
  35.  
  36. public static DateTime GetFirstDayDateOfWeek(this Calendar calendar, CalendarWeekRule weekRule, DayOfWeek dayOfWeek, int iWeek, int year) {
  37. if (iWeek <= 0) throw new ArgumentOutOfRangeException("Week ne peut pas ĂȘtre <= 0");
  38. DateTime dtFirstDayFirstWeek = GetFirstDayDateOfFirstWeek(calendar, weekRule, dayOfWeek, year);
  39. return calendar.AddWeeks(dtFirstDayFirstWeek, iWeek - 1);
  40. }
  41. #endregion
  42.  
  43. #region Sehnsucht's code
  44. public static DateTime GetDateOfWeekNumber(this Calendar calendar, DayOfWeek dayOfWeek, int weekNumber, int year) {
  45. DateTime firstDayYear = new DateTime(year, 1, 1);
  46. int diff = (int)dayOfWeek - (int)firstDayYear.DayOfWeek;
  47. DateTime closestChosenDay = firstDayYear.AddDays(diff);
  48.  
  49. return calendar.AddWeeks(closestChosenDay, weekNumber);
  50. }
  51. #endregion
  52. }
Success #stdin #stdout 0.02s 38112KB
stdin
Standard input is empty
stdout
Bluedeep:	03/05/1900 (Monday)
Sehnsucht:	03/12/1900 (Monday)

Bluedeep:	03/05/1901 (Tuesday)
Sehnsucht:	03/11/1901 (Monday)

Bluedeep:	03/05/1902 (Wednesday)
Sehnsucht:	03/10/1902 (Monday)

Bluedeep:	03/05/1903 (Thursday)
Sehnsucht:	03/09/1903 (Monday)

Bluedeep:	03/07/1904 (Monday)
Sehnsucht:	03/07/1904 (Monday)

Bluedeep:	03/06/1905 (Monday)
Sehnsucht:	03/13/1905 (Monday)

Bluedeep:	03/05/1906 (Monday)
Sehnsucht:	03/12/1906 (Monday)

Bluedeep:	03/05/1907 (Tuesday)
Sehnsucht:	03/11/1907 (Monday)

Bluedeep:	03/04/1908 (Wednesday)
Sehnsucht:	03/09/1908 (Monday)

Bluedeep:	03/08/1909 (Monday)
Sehnsucht:	03/08/1909 (Monday)

Bluedeep:	03/07/1910 (Monday)
Sehnsucht:	03/07/1910 (Monday)

Bluedeep:	03/06/1911 (Monday)
Sehnsucht:	03/13/1911 (Monday)

Bluedeep:	03/04/1912 (Monday)
Sehnsucht:	03/11/1912 (Monday)

Bluedeep:	03/05/1913 (Wednesday)
Sehnsucht:	03/10/1913 (Monday)

Bluedeep:	03/05/1914 (Thursday)
Sehnsucht:	03/09/1914 (Monday)

Bluedeep:	03/08/1915 (Monday)
Sehnsucht:	03/08/1915 (Monday)

Bluedeep:	03/06/1916 (Monday)
Sehnsucht:	03/06/1916 (Monday)

Bluedeep:	03/05/1917 (Monday)
Sehnsucht:	03/12/1917 (Monday)

Bluedeep:	03/05/1918 (Tuesday)
Sehnsucht:	03/11/1918 (Monday)

Bluedeep:	03/05/1919 (Wednesday)
Sehnsucht:	03/10/1919 (Monday)

Bluedeep:	03/04/1920 (Thursday)
Sehnsucht:	03/08/1920 (Monday)

Bluedeep:	03/07/1921 (Monday)
Sehnsucht:	03/07/1921 (Monday)

Bluedeep:	03/06/1922 (Monday)
Sehnsucht:	03/13/1922 (Monday)

Bluedeep:	03/05/1923 (Monday)
Sehnsucht:	03/12/1923 (Monday)

Bluedeep:	03/04/1924 (Tuesday)
Sehnsucht:	03/10/1924 (Monday)

Bluedeep:	03/05/1925 (Thursday)
Sehnsucht:	03/09/1925 (Monday)

Bluedeep:	03/08/1926 (Monday)
Sehnsucht:	03/08/1926 (Monday)

Bluedeep:	03/07/1927 (Monday)
Sehnsucht:	03/07/1927 (Monday)

Bluedeep:	03/05/1928 (Monday)
Sehnsucht:	03/12/1928 (Monday)

Bluedeep:	03/05/1929 (Tuesday)
Sehnsucht:	03/11/1929 (Monday)

Bluedeep:	03/05/1930 (Wednesday)
Sehnsucht:	03/10/1930 (Monday)

Bluedeep:	03/05/1931 (Thursday)
Sehnsucht:	03/09/1931 (Monday)

Bluedeep:	03/07/1932 (Monday)
Sehnsucht:	03/07/1932 (Monday)

Bluedeep:	03/06/1933 (Monday)
Sehnsucht:	03/13/1933 (Monday)

Bluedeep:	03/05/1934 (Monday)
Sehnsucht:	03/12/1934 (Monday)

Bluedeep:	03/05/1935 (Tuesday)
Sehnsucht:	03/11/1935 (Monday)

Bluedeep:	03/04/1936 (Wednesday)
Sehnsucht:	03/09/1936 (Monday)

Bluedeep:	03/08/1937 (Monday)
Sehnsucht:	03/08/1937 (Monday)

Bluedeep:	03/07/1938 (Monday)
Sehnsucht:	03/07/1938 (Monday)

Bluedeep:	03/06/1939 (Monday)
Sehnsucht:	03/13/1939 (Monday)

Bluedeep:	03/04/1940 (Monday)
Sehnsucht:	03/11/1940 (Monday)

Bluedeep:	03/05/1941 (Wednesday)
Sehnsucht:	03/10/1941 (Monday)

Bluedeep:	03/05/1942 (Thursday)
Sehnsucht:	03/09/1942 (Monday)

Bluedeep:	03/08/1943 (Monday)
Sehnsucht:	03/08/1943 (Monday)

Bluedeep:	03/06/1944 (Monday)
Sehnsucht:	03/06/1944 (Monday)

Bluedeep:	03/05/1945 (Monday)
Sehnsucht:	03/12/1945 (Monday)

Bluedeep:	03/05/1946 (Tuesday)
Sehnsucht:	03/11/1946 (Monday)

Bluedeep:	03/05/1947 (Wednesday)
Sehnsucht:	03/10/1947 (Monday)

Bluedeep:	03/04/1948 (Thursday)
Sehnsucht:	03/08/1948 (Monday)

Bluedeep:	03/07/1949 (Monday)
Sehnsucht:	03/07/1949 (Monday)

Bluedeep:	03/06/1950 (Monday)
Sehnsucht:	03/13/1950 (Monday)

Bluedeep:	03/05/1951 (Monday)
Sehnsucht:	03/12/1951 (Monday)

Bluedeep:	03/04/1952 (Tuesday)
Sehnsucht:	03/10/1952 (Monday)

Bluedeep:	03/05/1953 (Thursday)
Sehnsucht:	03/09/1953 (Monday)

Bluedeep:	03/08/1954 (Monday)
Sehnsucht:	03/08/1954 (Monday)

Bluedeep:	03/07/1955 (Monday)
Sehnsucht:	03/07/1955 (Monday)

Bluedeep:	03/05/1956 (Monday)
Sehnsucht:	03/12/1956 (Monday)

Bluedeep:	03/05/1957 (Tuesday)
Sehnsucht:	03/11/1957 (Monday)

Bluedeep:	03/05/1958 (Wednesday)
Sehnsucht:	03/10/1958 (Monday)

Bluedeep:	03/05/1959 (Thursday)
Sehnsucht:	03/09/1959 (Monday)

Bluedeep:	03/07/1960 (Monday)
Sehnsucht:	03/07/1960 (Monday)

Bluedeep:	03/06/1961 (Monday)
Sehnsucht:	03/13/1961 (Monday)

Bluedeep:	03/05/1962 (Monday)
Sehnsucht:	03/12/1962 (Monday)

Bluedeep:	03/05/1963 (Tuesday)
Sehnsucht:	03/11/1963 (Monday)

Bluedeep:	03/04/1964 (Wednesday)
Sehnsucht:	03/09/1964 (Monday)

Bluedeep:	03/08/1965 (Monday)
Sehnsucht:	03/08/1965 (Monday)

Bluedeep:	03/07/1966 (Monday)
Sehnsucht:	03/07/1966 (Monday)

Bluedeep:	03/06/1967 (Monday)
Sehnsucht:	03/13/1967 (Monday)

Bluedeep:	03/04/1968 (Monday)
Sehnsucht:	03/11/1968 (Monday)

Bluedeep:	03/05/1969 (Wednesday)
Sehnsucht:	03/10/1969 (Monday)

Bluedeep:	03/05/1970 (Thursday)
Sehnsucht:	03/09/1970 (Monday)

Bluedeep:	03/08/1971 (Monday)
Sehnsucht:	03/08/1971 (Monday)

Bluedeep:	03/06/1972 (Monday)
Sehnsucht:	03/06/1972 (Monday)

Bluedeep:	03/05/1973 (Monday)
Sehnsucht:	03/12/1973 (Monday)

Bluedeep:	03/05/1974 (Tuesday)
Sehnsucht:	03/11/1974 (Monday)

Bluedeep:	03/05/1975 (Wednesday)
Sehnsucht:	03/10/1975 (Monday)

Bluedeep:	03/04/1976 (Thursday)
Sehnsucht:	03/08/1976 (Monday)

Bluedeep:	03/07/1977 (Monday)
Sehnsucht:	03/07/1977 (Monday)

Bluedeep:	03/06/1978 (Monday)
Sehnsucht:	03/13/1978 (Monday)

Bluedeep:	03/05/1979 (Monday)
Sehnsucht:	03/12/1979 (Monday)

Bluedeep:	03/04/1980 (Tuesday)
Sehnsucht:	03/10/1980 (Monday)

Bluedeep:	03/05/1981 (Thursday)
Sehnsucht:	03/09/1981 (Monday)

Bluedeep:	03/08/1982 (Monday)
Sehnsucht:	03/08/1982 (Monday)

Bluedeep:	03/07/1983 (Monday)
Sehnsucht:	03/07/1983 (Monday)

Bluedeep:	03/05/1984 (Monday)
Sehnsucht:	03/12/1984 (Monday)

Bluedeep:	03/05/1985 (Tuesday)
Sehnsucht:	03/11/1985 (Monday)

Bluedeep:	03/05/1986 (Wednesday)
Sehnsucht:	03/10/1986 (Monday)

Bluedeep:	03/05/1987 (Thursday)
Sehnsucht:	03/09/1987 (Monday)

Bluedeep:	03/07/1988 (Monday)
Sehnsucht:	03/07/1988 (Monday)

Bluedeep:	03/06/1989 (Monday)
Sehnsucht:	03/13/1989 (Monday)

Bluedeep:	03/05/1990 (Monday)
Sehnsucht:	03/12/1990 (Monday)

Bluedeep:	03/05/1991 (Tuesday)
Sehnsucht:	03/11/1991 (Monday)

Bluedeep:	03/04/1992 (Wednesday)
Sehnsucht:	03/09/1992 (Monday)

Bluedeep:	03/08/1993 (Monday)
Sehnsucht:	03/08/1993 (Monday)

Bluedeep:	03/07/1994 (Monday)
Sehnsucht:	03/07/1994 (Monday)

Bluedeep:	03/06/1995 (Monday)
Sehnsucht:	03/13/1995 (Monday)

Bluedeep:	03/04/1996 (Monday)
Sehnsucht:	03/11/1996 (Monday)

Bluedeep:	03/05/1997 (Wednesday)
Sehnsucht:	03/10/1997 (Monday)

Bluedeep:	03/05/1998 (Thursday)
Sehnsucht:	03/09/1998 (Monday)

Bluedeep:	03/08/1999 (Monday)
Sehnsucht:	03/08/1999 (Monday)

Bluedeep:	03/06/2000 (Monday)
Sehnsucht:	03/06/2000 (Monday)

Bluedeep:	03/05/2001 (Monday)
Sehnsucht:	03/12/2001 (Monday)

Bluedeep:	03/05/2002 (Tuesday)
Sehnsucht:	03/11/2002 (Monday)

Bluedeep:	03/05/2003 (Wednesday)
Sehnsucht:	03/10/2003 (Monday)

Bluedeep:	03/04/2004 (Thursday)
Sehnsucht:	03/08/2004 (Monday)

Bluedeep:	03/07/2005 (Monday)
Sehnsucht:	03/07/2005 (Monday)

Bluedeep:	03/06/2006 (Monday)
Sehnsucht:	03/13/2006 (Monday)

Bluedeep:	03/05/2007 (Monday)
Sehnsucht:	03/12/2007 (Monday)

Bluedeep:	03/04/2008 (Tuesday)
Sehnsucht:	03/10/2008 (Monday)

Bluedeep:	03/05/2009 (Thursday)
Sehnsucht:	03/09/2009 (Monday)

Bluedeep:	03/08/2010 (Monday)
Sehnsucht:	03/08/2010 (Monday)

Bluedeep:	03/07/2011 (Monday)
Sehnsucht:	03/07/2011 (Monday)