どーも、みつおです。
問題
次の情報が与えられている.
- 1900年1月1日は月曜日である.
- 9月, 4月, 6月, 11月は30日まであり, 2月を除く他の月は31日まである.
- 2月は28日まであるが, うるう年のときは29日である.
- うるう年は西暦が4で割り切れる年に起こる. しかし, 西暦が400で割り切れず100で割り切れる年はうるう年でない.
20世紀(1901年1月1日から2000年12月31日)中に月の初めが日曜日になるのは何回あるか?
出典:Problem19
解答
using System; namespace Problem19 { class Program { static void Main(string[] args) { Console.WriteLine(Solve()); Console.ReadLine(); } private static int Solve() { int ret = 0; DateTime start = new DateTime(1901, 1, 1); DateTime end = new DateTime(2000, 12, 31); for (DateTime now = start; now <= end; now = now.AddDays(1)) { //月の1日でなければスルー if (now.Day != 1) continue; //日曜日なら+1 if (now.DayOfWeek == DayOfWeek.Sunday) ret++; } return ret; } } }
出力
171