class Program
{
static void Main(string[] args)
{
DateTime date = new DateTime(2020,3,13);
DateTime endDate = date.AddYears(400 * 7);
int all = 0;
int friday13 = 0;
while(date.CompareTo(endDate) == -1) //-1で以前、0で同じ、1で以後
{
if (date.Day == 13 && date.DayOfWeek.Equals(DayOfWeek.Friday)){
friday13++;
}
date = date.AddMonths(1);
all++;
}
double p = (double)friday13 / all;
double result = ((int)(p * 10000)) / 10000.0;
Console.WriteLine(result);
}
}
メモ
日付の比較はDatetime構造体のCompareToメソッドを使う。
戻り値はint型で引数より前で-1、同じで0、より後で1を返す。
日付の加算はDatetime構造体のAddMonths、AddDaysメソッドを使う