如何从两个字符串类型的日期中查找天数
本文关键字:日期 类型 查找 字符串 两个 | 更新日期: 2023-09-27 18:29:27
我有两个文本框日期(8/11/2014)和(9/11/2014)。我想知道这两次约会之间的天数。我收到一些字符串错误消息。请帮帮我。
只需解析两个日期,然后减去它们并计算总天数,如下所示:
DateTime date1 = DateTime.ParseExact(dateString1, "d/M/yyyy", CultureInfo.InvariantCulture);
DateTime date2 = DateTime.ParseExact(dateString2, "d/M/yyyy", CultureInfo.InvariantCulture);
var days = (int)(date2-date1).TotalDays;
我觉得冒着风险回答这个问题,但。。
您可以使用DateTime.ParseExact
或DateTime.TryParseExact
方法来解析字符串并相互相减,然后使用TimeSpan.TotalDays
属性。如果您对作为int
而不是double
的总天数感兴趣,也可以使用TimeSpan.Days
属性。
string txtdate = "8/11/2014";
DateTime dt;
if(DateTime.TryParseExact(txtdate, "d/MM/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
}
string txtdate1 = "9/11/2014";
DateTime dt1;
if(DateTime.TryParseExact(txtdate1, "d/MM/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt1))
{
}
var totaldays = (dt1 - dt).Days; // 1
你说;
我需要输出为8/11/2014-9/11/2014=1。但我应用了你的代码显示类似1.0的输出?
我告诉过你TotalDays
属性返回double
,Days
属性返回int
。但除此之外,你看起来像是9/11/2014 - 8/11/2014 = 1
的结果,而不仅仅是1
。在这种情况下,您可以像使用string.Format
;
var result = string.Format("{0} - {1} = {2}",
dt1.ToString("d/MM/yyyy", CultureInfo.InvariantCulture),
dt.ToString("d/MM/yyyy", CultureInfo.InvariantCulture),
totaldays);
result
将是9/11/2014 - 8/11/2014 = 1