簡體   English   中英

以天為單位獲取兩個日期之間的差異

[英]Getting difference between two dates in days

我有一個特定的問題,我的數據庫表中有如下記錄:

LastUpdated

10 January 2017

(日期作為 DateTime 類型存儲在數據庫中。)

現在我需要獲取今天的日期和包括今天的日期在內的最后一個日期之間的天數差異。 因此,例如,今天是 12 號,因此天數將為 2。

現在問題的第二部分是我有另一個表設置,如下所示:

TransactionDate

1 January 2017
2 January 2017
3 January 2017
4 January 2017
5 January 2017
6 January 2017
7 January 2017
8 January 2017
9 January 2017
10 January 2017

所以現在在我執行 LINQ 后,我的 DBTable 中的更新結果將如下所示:

3 January 2017
4 January 2017
5 January 2017
6 January 2017
7 January 2017
8 January 2017
9 January 2017
10 January 2017
11 January 2017
12 January 2017

所以基本上我試圖獲得當前日期和上次更新日期之間的差異,然后將其添加到交易明細表中。 添加兩個日期之間的差異后,我想刪除添加的差異天數,以便總日期跨度保持 10 天...

有人可以幫我解決這個問題嗎?

編輯:這是到目前為止的代碼:

 var usr = ctx.SearchedUsers.FirstOrDefault(x => x.EbayUsername == username);
 var TotalDays = (DateTime.Now - usr.LastUpdatedAt).Value.TotalDays;

這是獲取我上面提到的兩個日期之間差異的正確方法嗎?

現在,在此之后,我執行一個 HTTP 請求,獲取剩余的兩個日期並將其插入,如下所示:

ctx.TransactionDetails.Add(RemainingTwoDates);
ctx.SaveChanges();

現在我的日期從 1 月 1 日擴展到 1 月 12 日,但我想刪除 1 月 1 日和 2 日,以便總天數保持 10 天;

我怎樣才能做到這一點 ?

您可以刪除早於 10 天前的交易日期。

ctx.TransactionDetails.Add(RemainingTwoDays);

//Now you want to remove those older than 10 days
var today = DateTime.Today;
var tenDaysAgo = today.AddDays(-10);
var oldTrandactions = ctx.TransactionDetails.Where(t => t.TransactionDate <= tenDaysAgo).ToList();

foreach (var t in oldTrandactions) {
    ctx.TransactionDetails.Remove(t);
}

ctx.SaveChanges();

暫無
暫無

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

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