在c#中获取一年中的天数和两个日期之间的所有小时

本文关键字:日期 两个 小时 之间 获取 一年 | 更新日期: 2023-09-27 18:16:01

我有这样的文件夹结构:年(2016)->一年中的一天(308,309)->一天中的小时(00至23)。我想知道如何得到两个日期之间的所有天数和小时,比如今天上午9点到昨天上午10点之间。有简单的方法吗?

我的坏!我没有给出足够的信息。在我问这个之前我尝试了张成空间我不想得到不同的张成空间。天,小时或分钟而不是我想要一年中的天数和两个日期之间的小时。

就像昨天上午10点到今天是第307天第10小时,第11小时,等等…直到今天308天9小时。我可以通过循环日期来做到这一点,但我想知道是否有一个直接的方法。

在c#中获取一年中的天数和两个日期之间的所有小时

我将创建一个简单的类来存储您需要的数据:

class DateInfo
{
    public string Year {get;set;} 
    public string DayOfYear{get;set;}
    public string Hour {get;set;}
}

,然后得到结果:

DateTime d1 = DateTime.Today.AddDays(-1).AddHours(10);
DateTime d2 = DateTime.Today.AddHours(9);
IList<DateInfo> dates = new List<DateInfo>();
while (d1 <= d2)
{
    DateInfo dateInfo = new DateInfo()
    {
        Year = d1.ToString("yyyy"),
        DayOfYear = d1.DayOfYear.ToString(),
        Hour = d1.ToString("HH"),
    };
    dates.Add(dateInfo);
    d1 = d1.AddHours(1);
}

有n种方法可以找出两个日期之间的差异。其中2条如下

DateTime a = new DateTime(2016, 11, 03, 10, 00, 00); 
DateTime b = DateTime.Now;
Console.WriteLine(b.Subtract(a).TotalHours);

这将给出两个日期之间的总小时数,其中

TimeSpan span = (b - a);
Console.WriteLine(String.Format("{0} days, {1} hours, {2} minutes, {3} seconds", span.Days, span.Hours, span.Minutes, span.Seconds));

这将以每个人都能理解的格式给你细节。