代码之家  ›  专栏  ›  技术社区  ›  Tom

在计算两个随机日期之间的天数时,timespan是否考虑闰年?

  •  2
  • Tom  · 技术社区  · 17 年前

    例如:

    DateTime date1 = new DateTime(1955, 12, 12);
    DateTime date2 = new DateTime(1967, 3, 6);
    TimeSpan fff = date2 - date1;
    

    它能正确计算天数吗?(考虑闰年)

    2 回复  |  直到 17 年前
        1
  •  8
  •   Reed Copsey    17 年前

    是的,它考虑到了这一点。

    DateTime date0 = new DateTime(2001, 12, 31);
    DateTime date1 = new DateTime(2000, 12, 31);
    DateTime date2 = new DateTime(1999, 12, 31);
    Console.WriteLine("{0} / {1}", (date2 - date1).Days, (date1-date0).Days);
    

    上述输出:-366/-365

        2
  •  0
  •   t9mike    7 年前

    我建议下载一个很好的C#开发环境补充工具 Boo . Boo是一种Python脚本语言,但具有对.NET framework的完全访问权限。在快速尝试字符串格式、正则表达式和日期/时间字符串格式时,我经常使用它作为帮助。这是我的Boo课程,我测试了你的问题:

    C:\Documents and Settings\Paul>booish
    Welcome to booish, an interpreter for the boo programming language.
    Running boo 0.9.0.3203 in CLR v2.0.50727.3082.
    
    Enter boo code in the prompt below (or type /help).
    >>>dt1 = System.DateTime(2009,1,1)
    1/1/2009 12:00:00 AM
    >>>dt2 = System.DateTime(2008,1,1)
    1/1/2008 12:00:00 AM
    >>>dt3 = System.DateTime(2007,1,1)
    1/1/2007 12:00:00 AM
    >>>print dt1-dt2
    366.00:00:00
    >>>print dt2-dt3
    365.00:00:00
    >>>
    

    您还可以将Boo脚本编译为DLL和EXE。