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

时间:2014-11-06 13:28:56

标签: c#

我有两个文本框日期(2014年8月8日)和(9/11/2014)。我想找到这两个日期之间的天数。我收到一些字符串错误消息。请帮帮我..

2 个答案:

答案 0 :(得分:3)

只需解析两个日期,然后将它们减去并计算总天数:

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;

答案 1 :(得分:2)

我觉得有风险回答这个问题,但是......

您可以使用DateTime.ParseExactDateTime.TryParseExact方法解析字符串并相互减去并使用TimeSpan.TotalDays property。如果您对int而不是double的总天数感兴趣,也可以使用TimeSpan.Days property

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

said;

  

我需要输出为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