簡體   English   中英

比較兩個DATE並在c#中獲取Days

[英]Compare two DATE and get Days in c#

計算comapaing兩個日期的天數,如果你想比較兩個日期,如期限日期和圖書館的書籍的返回日期,那么你可以用這種方式得到沒有天數

        int TotalDay;
        DateTime due = OldDate;

        int day = due.Day;
        int nday = DateTime.Now.Day;
        int mnt = due.Month;
        int nmnt = DateTime.Now.Month;
        int yr = due.Year;
        int nyr = DateTime.Now.Year;
        if (nyr <= yr)
        {
            if (nmnt <= mnt)
            {
                if (nday > day)
                {
                    TotalDay = nday - day;
                }
            }
            else
            {
                TotalDay = nday - day;
                m = nmnt - mnt;
                TotalDay = d + (m * 30);
            }
        }
        else
        {
            TotalDay = nday - day;
            m = nmnt - mnt;
            TotalDay  = d + (m * 30);
            int y = nyr - yr;
            TotalDay  = d + (y * 365);
        }

使用TimeSpan

TimeSpan ts = dateTime1 - dateTime2;

ts.TotalDays將為您提供天數的差異。

在你的情況due在截止日期和DateTime.Now是當前日期。 你可以使用:

TimeSpan ts = DateTime.Now - due;

//or 

TimeSpan ts = DateTime.Now.Subtract(due);

int NumberOfDays = ts.TotalDays;

您可以查看TimeSpan.TotalDays屬性

可以使用TimeSpan ,如其他答案中所示 - 但您需要注意一天中的時間。 您是否真的試圖將這些視為日期或日期與時間? 時區怎么樣? 您是否正在使用“本地” DateTime值?

雖然DateTime可以處理所有這些,但事情並不清楚。 我個人使用Noda Time (這不應該讓任何人感到驚訝,因為它是我自己的庫......)

LocalDate startDate = ...;
LocalDate endDate = ...;

long days = Period.Between(startDate, endDate, PeriodUnits.Days).Days;

請注意,查找“今天的日期”也需要知道適當的時區。 DateTime.NowDateTime.Today假設您的代碼正在運行的系統時區,但這可能是您想要的,也可能不是。)

你需要TimeSpan

Timespan t = ReturnDateTime - DateTime.Now;

然后用

t.Days

用於計算剩余的天數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM