计算两个日期之间的数字(C#、CultureInfo)
Count number between two date (C#, CultureInfo)
我试图获取 两个日期之间的数字:
DateTime base;
....
base = DateTime.ParseExact(pos[13], "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
//example base = 2014-06-21 17:00:00
DateTime col_N;
//then some for loop
col_N = DateTime.ParseExact(pos[k], "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
//example col_N = 2014-06-22 00:00:00
为了让我在下面这样做:
int date_diff = (col_N - base).Days;
但它 return 我 0.
此外,当我检查时:
string diff_dat2 = (col_N - base).TotalDays.ToString();
我得到了 0,291666666666667。
如何更正它以获得 1 天?
我不确定你到底想达到什么目的,但我假设你想在不包括时间的日期中获得天数差异。
要实现此目的,您需要通过执行 .Date
:
删除 DateTime 的时间组件
int date_diff = (col_N.Date - base.Date).Days;
TotalDays 在您的示例中是正确的,因为您所拥有的两个时间之间没有完整的日期,但如果您仅在日期中操作,您将得到正确的答案。
我试图获取 两个日期之间的数字:
DateTime base;
....
base = DateTime.ParseExact(pos[13], "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
//example base = 2014-06-21 17:00:00
DateTime col_N;
//then some for loop
col_N = DateTime.ParseExact(pos[k], "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
//example col_N = 2014-06-22 00:00:00
为了让我在下面这样做:
int date_diff = (col_N - base).Days;
但它 return 我 0.
此外,当我检查时:
string diff_dat2 = (col_N - base).TotalDays.ToString();
我得到了 0,291666666666667。
如何更正它以获得 1 天?
我不确定你到底想达到什么目的,但我假设你想在不包括时间的日期中获得天数差异。
要实现此目的,您需要通过执行 .Date
:
int date_diff = (col_N.Date - base.Date).Days;
TotalDays 在您的示例中是正确的,因为您所拥有的两个时间之间没有完整的日期,但如果您仅在日期中操作,您将得到正确的答案。