2011-08-19 41 views
4

我試圖從Datetime.Now得到一年中剩餘的天數。C# - 從Datetime.Now中剩餘幾年的日期

有一點麻煩,我試着用datediff沒有太大的成功。

我不認爲你們的專家可能會告訴我在C#中這將如何實現?

我想要一個代碼來返回剩餘天數的整數值。

回答

2

關閉我的頭頂,你可以這樣做:

Date someDate = DateTime.Now; 
Date nextYear = new DateTime(someDate.Year + 1, 1, 1); 
int daysLeft = (nextYear - someDate).Days; 

沒有測試過,因爲我在家裏,但我的邏輯很肯定。 :)

4
DateTime now = DateTime.Now; 
DateTime end = new DateTime(now.Year + 1, 1, 1); 
int daysLeftInYear = (int)(end - now).TotalDays; 
0

如何:

public int DaysLeftInYear() 
    { 
     DateTime today = DateTime.Now; 
     int daysInYear = 365; 
     if (DateTime.IsLeapYear(today.Year)) 
     { 
      daysInYear++; 
     } 

     return daysInYear - today.DayOfYear; 
    } 
0

這樣的事情...

DateTime EOY = new DateTime(DateTime.Now.Year, 12, 31); 
int DaysLeft = EOY.Subtract(DateTime.Now).Days; 
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曾經,否則如果在一年結束時評估一次,另一次評估一次,則可能會出現不一致。

+0

@喬恩飛碟雙向的答案:結果是在範圍0-366閏年。 –

+0

@Quandary:不,它不是,因爲DayOfYear至少是1。 –

-1

已經有很多的工作,但還沒有看到這個簡單的一個又

DateTime today = DateTime.Now; 
int daysleft = new DateTime(today.Year,12,31).DayOfYear - today.DayOfYear; 
相關問題