首页 > Windows开发 > 详细

C#时间分割

时间:2021-01-14 17:12:47      阅读:30      评论:0      收藏:0      [点我收藏+]
      public Dictionary<DateTime, TimeRange> GetDateTimeRanges(DateTime startTime, DateTime endTime, int type)
        {
            Dictionary<DateTime, TimeRange> timeDic = new Dictionary<DateTime, TimeRange>();
            switch (type)
            {
                case 0://月分割
             
                    TimeRange timeRange = new TimeRange();
                    timeRange.StartTime = startTime;
                    var nextTime= startTime.AddDays(1 - startTime.Day).AddMonths(1).AddHours(-startTime.Hour).AddMinutes(-startTime.Minute).AddSeconds(-startTime.Second);
                    timeRange.EndTime = nextTime;
                    timeDic.Add(startTime, timeRange);

                    while (DateTime.Compare(startTime, endTime) <= 0)
                    {

                        TimeRange timeRange0 = new TimeRange();
                        var tmpTime = nextTime;
                        timeRange0.StartTime = nextTime;
                        nextTime= nextTime.AddDays(1 - startTime.Day).AddMonths(1).AddHours(-startTime.Hour).AddMinutes(-startTime.Minute).AddSeconds(-startTime.Second);
                        timeRange0.EndTime = nextTime;
                        timeDic.Add(tmpTime, timeRange0);
                        startTime = nextTime;
                    }             
                    break;
                case 1://季度分割
                    TimeRange timeRange1 = new TimeRange();
                    timeRange1.StartTime = startTime;
                    var nextTime1 = startTime.AddDays(1 - startTime.Day).AddMonths(3).AddHours(-startTime.Hour).AddMinutes(-startTime.Minute).AddSeconds(-startTime.Second);
                    timeRange1.EndTime = nextTime1;
                    timeDic.Add(startTime, timeRange1);
                    while (DateTime.Compare(startTime, endTime) < 0)
                    {

                        TimeRange timeRange0 = new TimeRange();
                        var tmpTime = nextTime1;
                        timeRange0.StartTime = nextTime1;
                        nextTime1 = nextTime1.AddDays(1 - startTime.Day).AddMonths(3).AddHours(-startTime.Hour).AddMinutes(-startTime.Minute).AddSeconds(-startTime.Second);
                        timeRange0.EndTime = nextTime1;
                        timeDic.Add(tmpTime, timeRange0);
                        startTime = nextTime1;
                    }
                    break;
            }


            return timeDic;
        }
        public class TimeRange
        {
            public DateTime StartTime { get; set; }
            public DateTime EndTime { get; set; }
        }

 

C#时间分割

原文:https://www.cnblogs.com/xiaoqiyaozou/p/14278099.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!