どーも、みつおです。
問題
次の情報が与えられている.
- 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