1.代码(主函数体)
static void Main(string[] args)
{
int[] InPut = new int[3];
Console.WriteLine("请依次输入年月日");
for (int i = 0; i <= 2; i++)
{
InPut[i] = int.Parse(Console.ReadLine());
}
Console.WriteLine("当天是该年的第{0}天", GetDay(InPut));
}
private static int GetDay(int[] time)
{
int day = 0;
GetDaysByMonth(time);
for (int i = 0; i < time[1]; i++) day += GetDaysByMonth(time)[i];
int days = day + time[2];
return days;
}
private static bool IsLeapYear(int[] time)
{
int year = time[0];
return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
}
private static int[] GetDaysByMonth(int[] time)
{
int a = time[1];
int[] MonthCount = new int[time[1] + 1];
for (int i = 1; i < a; i++)
{
if (i == 4 || i == 6 || i == 9 || i == 11) MonthCount[i] = 30;
else MonthCount[i] = 31;
if (IsLeapYear(time)) MonthCount[2] = 29;
else MonthCount[2] = 28;
}
return MonthCount;
}
2.运行结果
2022年的3月1日,31+28+1=60天
3.原理
3.1判断是否为闰年的函数
判断的结果为bool类型,所以直接放在return后输出即可
3.2将每个月天数输入到一个数组中
3.3得到总天数
3.4主函数,输入数组得出结果