我正试图从Datetime.Now
获得一年内剩余的天数。
遇到一点麻烦,我尝试使用datediff
但没有取得多大成功。
我不认为你们中的一位专家可能会告诉我如何在C#中实现这一目标?
我想要一个代码来返回剩余天数的整数值。
答案 0 :(得分:8)
怎么样:
DateTime date = DateTime.Today;
int daysInYear = DateTime.IsLeapYear(date.Year) ? 366 : 365;
int daysLeftInYear = daysInYear - date.DayOfYear; // Result is in range 0-365.
请注意,仅评估DateTime.Now
一次非常重要,否则如果在一年结束时评估一次,而在另一年开始评估一次,则可能会出现不一致。
答案 1 :(得分:4)
DateTime now = DateTime.Now;
DateTime end = new DateTime(now.Year + 1, 1, 1);
int daysLeftInYear = (int)(end - now).TotalDays;
答案 2 :(得分:2)
在我的头顶,你可以这样做:
Date someDate = DateTime.Now;
Date nextYear = new DateTime(someDate.Year + 1, 1, 1);
int daysLeft = (nextYear - someDate).Days;
没有经过测试,因为我在家,但我非常确定逻辑。 :)
答案 3 :(得分:0)
这个怎么样:
public int DaysLeftInYear()
{
DateTime today = DateTime.Now;
int daysInYear = 365;
if (DateTime.IsLeapYear(today.Year))
{
daysInYear++;
}
return daysInYear - today.DayOfYear;
}
答案 4 :(得分:0)
DateTime EOY = new DateTime(DateTime.Now.Year, 12, 31);
int DaysLeft = EOY.Subtract(DateTime.Now).Days;
答案 5 :(得分:0)
假设您的日期(endDate)较大,并且您想知道有多少天,
int days = endDate.Subtract(startDate).Days;
答案 6 :(得分:0)
基于最高投票答案的一个班轮:
DateTime.IsLeapYear(DateTime.Today.Year) ? 366 - DateTime.Today.DayOfYear : 365 - DateTime.Today.DayOfYear
答案 7 :(得分:-1)
已经有很多有效的答案,但还没有看到这个简单的答案
DateTime today = DateTime.Now;
int daysleft = new DateTime(today.Year,12,31).DayOfYear - today.DayOfYear;