默认时间:
DateTime dt = new DateTime(1964, 10,6,10,20,0);
DateTime dateTime = dt;
方法一:C# 内置
Console.WriteLine(dateTime.DayOfYear);
方法二:循环
int year= dateTime.Year, month= dateTime.Month, day= dateTime.Day;
int sum=0;
for (int i = 1; i < month; i++)
{
if (i==2)
{
sum += 28;
continue;
}
if (i < 8)
{
if ((i & 1) == 0)
sum += 30;
else
sum += 31;
continue;
}
else
{
if ((i & 1) == 0)
sum += 31;
else
sum += 30;
}
}
if (IsLeap(year))
sum += 1;
sum += day;
Console.WriteLine(sum);
方法三:数组
sum = 0;
int[] days = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304,334 };
sum = days[month - 1];
if (IsLeap(year))
sum += 1;
sum += day;
Console.WriteLine(sum);
方法四:数组
sum = 0;
int[] days2 = { 0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 };
for (int i = 1; i < month; i++)
{
sum += days2[i];
}
if (IsLeap(year))
sum += 1;
sum += day;
Console.WriteLine(sum);
其中IsLeap方法为:
static bool IsLeap(int year) => year % 4 == 0 && year % 100 != 0 || year % 400 == 0;