我有两个文本框日期(2014年8月8日)和(9/11/2014)。我想找到这两个日期之间的天数。我收到一些字符串错误消息。请帮帮我..
答案 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.ParseExact
或DateTime.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
属性返回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