C# 以“X年、Y月、Z周、一天”的形式计算两个日期之间的差值`
可能重复:C# 以“X年、Y月、Z周、一天”的形式计算两个日期之间的差值`,c#,vb.net,C#,Vb.net,可能重复: 如何计算到目前为止,包括年、日、月、周之间的确切差异。就像windows计算器一样 像这样表示1年、1个月、1周、1天,试试这个 TimeSpan span = endDate - startDate; //span.TotalDays gives days 至于月、年和周,人们想知道你是否需要一个Math.Floor或Math.Ceil试试这个 TimeSpan span = endDate - startDate; //span.TotalDays gives days 至
如何计算到目前为止,包括年、日、月、周之间的确切差异。就像windows计算器一样 像这样表示1年、1个月、1周、1天,试试这个
TimeSpan span = endDate - startDate;
//span.TotalDays gives days
至于月、年和周,人们想知道你是否需要一个Math.Floor
或Math.Ceil
试试这个
TimeSpan span = endDate - startDate;
//span.TotalDays gives days
至于几个月、几年和几周,人们想知道你是否需要一个
Math.Floor
或Math.Ceil
我不相信.NET本身有任何有用的功能TimeSpan
(您可以从date2-date1
中获得)没有月等的概念-它实际上只是一个以滴答为单位的持续时间
你可以用这个,但它还没有完成。周期计算部分可能会进一步改变。。。我还不确定。如果您想要野田佳彦时间代码示例,请告诉我
还要注意,使用日期进行算术运算是非常困难的。有时很难找到正确的答案……我不相信.NET本身有任何有用的功能
TimeSpan
(您可以从date2-date1
中获得)没有月等的概念-它实际上只是一个以滴答为单位的持续时间
你可以用这个,但它还没有完成。周期计算部分可能会进一步改变。。。我还不确定。如果您想要野田佳彦时间代码示例,请告诉我
还要注意,使用日期进行算术运算是非常困难的。有时很难找到正确的答案……在MSDN上找到了这一点对于您的情况,您可以使用第一种方法
System.TimeSpan
以指定格式获取差异
System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);
// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);
// date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1);
// diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3;
// date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;
在MSDN上找到了这个对于您的情况,您可以使用第一种方法
System.TimeSpan
以指定格式获取差异
System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);
// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);
// date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1);
// diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3;
// date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;
根据我对彼得回答的评论,这在几周、几个月和几年内都没有帮助。@Jon Skeet:如果我知道你在身边,我甚至不会回答:)我刚开始年复一年,然后我意识到了复杂性。根据我对彼得回答的评论,这在几周、几个月和几年内都没有帮助。@Jon Skeet:如果我知道你在身边,我甚至都不会回答:)我刚开始学习几年,然后我意识到了复杂性。我在打开
http://noda-time.sourceforge.net/
@Neeraj:Gah,对不起,对我来说太早了。我已经修复了链接:)@Jon:你可能需要重复你在这里提供的答案。打开http://noda-time.sourceforge.net/
@Neeraj:Gah,对不起,对我来说太早了。我已经修复了链接:)@Jon:你可能需要重复你在这里提供的答案。