根据年月日,计算当天是本年的第几天
思路:
1.用一个数组存储平年的12个月中每月的天数
int[] daysOfMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
2定义一个判断闰年的方法
3.如果是闰年,调用判断闰年的方法,并将数组中的2月替换成29天
4.累加当月之前的每月天数,再加上当月的天数
using System;
namespace day
{
class Program
{
static void Main()
{
int day = GetTotalDays(2021, 7, 8);
Console.WriteLine(day);
}
//判断闰年
private static bool IsLeapYear(int year)
{
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? true : false;
}
//根据年月日,判断当天是本年的第几天
private static int GetTotalDays(int year, int month, int day)
{
int[] daysOfMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (IsLeapYear(year)) daysOfMonth[1] = 29; //如果是闰年,2月有29天
int days = 0;
for (int i = 0; i<month -1; i++)
{
days += daysOfMonth[i];
}
days += day;
return days;
}
}
}