繁体   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