我试图找出如何找到两天内的日期之间的差异,但是当尝试以下操作时:
DateTime O = d_out;
DateTime I = d_in;
TimeSpan span = I.Subtract(O);
var days = span.Days;
(d_out和d_in是保存日期值的变量)
仅返回天数之间的差,不返回月份和年份的天数。
为使您更清楚地理解上面的代码,对于日期“ 06/08/18”(2018年8月6日)和“ 05/09/18”(9月18日)之间的差异返回“ -1”,我该怎么办?改为输出“ 30”?
答案 0 :(得分:4)
span.TotalDays
将为您提供总天数
是的
使用系统;
public class Program
{
public static void Main()
{
var d1=DateTime.Parse("1/2/18");
var d2=DateTime.Parse("2/3/18");
Console.WriteLine(d2.Subtract(d1).TotalDays);
}
}
输出32
看到我的Fiddle
答案 1 :(得分:2)
我已经在C#交互式环境中运行了它,并且效果很好:
var start = new DateTime(2018, 8, 6);
var end = new DateTime(2018, 9, 5);
var span = end - start;
span.Days
30
您确定这不是日期格式问题,例如您正在使用将第一个数字解释为月份的美国语言环境来运行?
我建议您在调试时验证分配两个变量后的确切日期。
答案 2 :(得分:1)
您要将月份解析为分钟。 In DateTime
string formatting, M
is month and m
is minute.
using System;
public class Program
{
public static void Main()
{
var d1=new DateTime(2018, 1, 6, 0, 8, 0);
var d2=new DateTime(2018, 1, 5, 0, 9, 0);
var span = d2.Subtract(d1);
Console.WriteLine(span.TotalDays);
Console.WriteLine(span.Days);
}
}
结果:
-0.999305555555556
0