"今年的10月份有五个星期六,五个星期天,五个星期一!这样的年份每823年才有一次。这些特殊的年份叫做钱袋年!"
真的823年才一次吗?小朋友们来算一下,结果多了去了:
using System;
namespace MoneyWeek
{
class Program
{
static void Main(string[] args)
{
int m = 0;
int c1 = 0, c7 = 0, c6 = 0;
DateTime dt = new DateTime(1, 1, 1);
while (dt.Year < 9999)
{
if (m != dt.Month)
{
if (m == 10 && c1 >= 5 && c6 >= 5 && c7 >= 5) // 10月份有5个星期六,5个星期天,5个星期一
{
Console.WriteLine(dt.ToString("yyyy") + "年" + m + "月:周一:" + c1.ToString() + " 周六:" + c6.ToString() + " 周日:" + c7.ToString());
}
m = dt.Month;
c6 = c7 = c1 = 0;
}
if (dt.DayOfWeek == DayOfWeek.Monday) { ++c1; }
if (dt.DayOfWeek == DayOfWeek.Saturday) { ++c6; }
if (dt.DayOfWeek == DayOfWeek.Sunday) { ++c7; }
dt = dt.AddDays(1);
}
}
}
}