我发现这个问题已经在Java、JavaScript和PHP中得到了解答,但c#中没有。那么,如何在c#中计算两个日期之间的天数呢?
当前回答
得到两个日期之间的差值,然后从下面得到日期:
int total_days = (EndDate - StartDate).TotalDays
其他回答
对于像我这样的初学者来说,在简单的一行代码中就会遇到这个小问题:
int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);
这将计算从今天(DateTime.UtcNow.Date)到所需日期(myDateTime.Date)的总天数。
如果myDateTime是昨天,或比今天更早的日期,这将给出一个正(+)整数结果。
另一方面,如果myDateTime是明天或未来的日期,由于加法规则,这将给出一个负(-)整数结果。
编码快乐!^ _ ^
上面的答案是正确的,但是如果你只想把整天作为整数,并且愿意放弃约会的时间部分,那么可以考虑:
(EndDate.Date - StartDate.Date).Days
同样假设StartDate和EndDate是DateTime类型。
假设StartDate和EndDate是DateTime类型:
(EndDate - StartDate).TotalDays
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
DateTime d = Calendar1.SelectedDate;
// int a;
TextBox2.Text = d.ToShortDateString();
string s = Convert.ToDateTime(TextBox2.Text).ToShortDateString();
string s1 = Convert.ToDateTime(Label7.Text).ToShortDateString();
DateTime dt = Convert.ToDateTime(s).Date;
DateTime dt1 = Convert.ToDateTime(s1).Date;
if (dt <= dt1)
{
Response.Write("<script>alert(' Not a valid Date to extend warranty')</script>");
}
else
{
string diff = dt.Subtract(dt1).ToString();
Response.Write(diff);
Label18.Text = diff;
Session["diff"] = Label18.Text;
}
}
使用TimeSpan对象,它是date减法的结果:
DateTime d1;
DateTime d2;
return (d1 - d2).TotalDays;
推荐文章
- 最好的方法在asp.net强制https为整个网站?
- 将字符串转换为System.IO.Stream
- MySQL中两个日期之间的差异
- 如何从枚举中选择一个随机值?
- 在Bash中获取日期(比当前时间早一天)
- 驻留在App_Code中的类不可访问
- 在链式LINQ扩展方法调用中等价于'let'关键字的代码
- dynamic (c# 4)和var之间的区别是什么?
- Visual Studio: ContextSwitchDeadlock
- 返回文件在ASP。Net Core Web API
- 自定义HttpClient请求头
- 如果我使用OWIN Startup.cs类并将所有配置移动到那里,我是否需要一个Global.asax.cs文件?
- VS2013外部构建错误"error MSB4019: The imported project <path> was not found"
- 从另一个列表id中排序一个列表
- 我怎么能计算在打字稿2日期之间的时间