Get the days of year and all the hours between 2 dates in C#
我有一些文件夹结构,如年份(2016年)->一年中的某一天(308309年)->一天中的某个小时(00到23年)。我想知道如何让两个约会之间的所有白天和时间,比如今天上午9点到昨天上午10点。有简单的方法吗?
我的错!我没有提供足够的信息。所以我在问这个问题之前尝试了SPAN,我不想像SPAN.DAYS、HOURS或MINS那样得到不同的结果,而是希望一年中的几天和两个日期之间的几小时。
就像在昨天上午10点到今天这段时间里,将是第307天的第10个小时,第11个小时等等…直到今天308天9点。我可以通过循环浏览日期来做到这一点,但我想知道是否有一个直接的方法。
我将创建一个简单的类来存储您需要的数据:
2然后得到结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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个如下
1 2 3 | DateTime a = new DateTime(2016, 11, 03, 10, 00, 00); DateTime b = DateTime.Now; Console.WriteLine(b.Subtract(a).TotalHours); |
这将为您提供两个日期之间的总小时数,其中
1 2 | TimeSpan span = (b - a); Console.WriteLine(String.Format("{0} days, {1} hours, {2} minutes, {3} seconds", span.Days, span.Hours, span.Minutes, span.Seconds)); |
这将以每个人都能理解的格式为您提供详细信息。