如何从两个字符串类型的日期中查找天数

本文关键字:日期 类型 查找 字符串 两个 | 更新日期: 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.ParseExactDateTime.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属性返回doubleDays属性返回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