//输入年月日 int year = Convert.ToInt32(Console.ReadLine()); int month = Convert.ToInt32(Console.ReadLine()); int day = Convert.ToInt32(Console.ReadLine()); int sum = 0; int count = 0;//计数器 for (int i = 1; i < year; i++) { //判断公元1年到输入年份的前一年是闰年仍是平年 if (i % 4 == 0&&i%100!=0 || i % 400 == 0)//判断某年时闰年仍是平年的条件 { sum = 366; } else { sum = 365; } for (int j = 1; j <= sum; j++) { count++; if (count==7)//count表示天数,七天一个循环,当count=7时,计数器归零,从新计数 { count = 0; } } } int[] toDay ;//定义数组存储一年每月的天数 //判断输入的年份是闰年仍是平年 if (year % 4 == 0&&year%100!=0 ||year % 400 == 0) {//闰年二月是29天 toDay = new int[] { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; } else {//平年二月是28天 toDay = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; } int sum1 = 0; for (int i = 0; i < month-1; i++) { sum1 += toDay[i]; } int sum2 = sum1 + day;//输入日期是当年的第几天 for (int i = 1; i <= sum2; i++) { count++; if (count==7) { count = 0; } } switch (count) { case 1: Console.WriteLine("星期一"); break; case 2: Console.WriteLine("星期二"); break; case 3: Console.WriteLine("星期三"); break; case 4: Console.WriteLine("星期四"); break; case 5: Console.WriteLine("星期五"); break; case 6: Console.WriteLine("星期六"); break; case 0: Console.WriteLine("星期日"); break; default: break; }