C# 根据开始时间和结束时间计算的问题

时间:2022-01-05 17:09:14
做了个曲线显示的例子
现在有开始时间和结束时间了 那么怎么把这段时间等分呢
比如  
开始时间是2013-06-06 00:00:00
结束时间是2013-06-07 00:00:00
怎么计算能得到每个坐标点上相应的时间
要求得到的结果是
2013-06-06 03:00:00
2013-06-06 06:00:00
2013-06-06 09:00:00
2013-06-06 12:00:00
2013-06-06 15:00:00
2013-06-06 18:00:00
2013-06-06 21:00:00

5 个解决方案

#1


两个时间相减得到一个timespan,再根据精度要求转换为分钟或者秒不就行了

#2


引用 1 楼 xuexiaodong2009 的回复:
两个时间相减得到一个timespan,再根据精度要求转换为分钟或者秒不就行了


时间差可以获取到,问题就是 开始时间怎么加上这个数字 得到一个新的时间

#3


   DateTime time1 = new DateTime();
            time1.AddMinutes(1);
            time1.AddSeconds(2);

#4


DateTime timeStart=Convert.ToDateTime("2013-06-06 00:00:00");
DateTime timeEnd = Convert.ToDateTime("2013-06-07 00:00:00");
TimeSpan ts = timeEnd - timeStart;
然后根据需要把ts给拆分成几段,再去用Add方法不就行了。

#5



private List<DateTime> DateSpace(DateTime start, DateTime end, int num)
        {
            List<DateTime> list = new List<DateTime>();
            //得到相差的小时数
            double differHours = (end - start).TotalHours;

            //每等份多少小时
            double size = differHours / num;

            DateTime time = start;
            for (int i = 0; i < num; i++)
            {
                time = i == 0 ? start.AddHours(size) : time.AddHours(size);
                list.Add(time);
            }
            return list;
        }



DateTime start = DateTime.Parse("2013-06-06 00:00:00");
DateTime end = DateTime.Parse("2013-06-07 00:00:00");

List<DateTime> list = DateSpace(start, end, 9);


C# 根据开始时间和结束时间计算的问题

不知道理解的对不对、。

#1


两个时间相减得到一个timespan,再根据精度要求转换为分钟或者秒不就行了

#2


引用 1 楼 xuexiaodong2009 的回复:
两个时间相减得到一个timespan,再根据精度要求转换为分钟或者秒不就行了


时间差可以获取到,问题就是 开始时间怎么加上这个数字 得到一个新的时间

#3


   DateTime time1 = new DateTime();
            time1.AddMinutes(1);
            time1.AddSeconds(2);

#4


DateTime timeStart=Convert.ToDateTime("2013-06-06 00:00:00");
DateTime timeEnd = Convert.ToDateTime("2013-06-07 00:00:00");
TimeSpan ts = timeEnd - timeStart;
然后根据需要把ts给拆分成几段,再去用Add方法不就行了。

#5



private List<DateTime> DateSpace(DateTime start, DateTime end, int num)
        {
            List<DateTime> list = new List<DateTime>();
            //得到相差的小时数
            double differHours = (end - start).TotalHours;

            //每等份多少小时
            double size = differHours / num;

            DateTime time = start;
            for (int i = 0; i < num; i++)
            {
                time = i == 0 ? start.AddHours(size) : time.AddHours(size);
                list.Add(time);
            }
            return list;
        }



DateTime start = DateTime.Parse("2013-06-06 00:00:00");
DateTime end = DateTime.Parse("2013-06-07 00:00:00");

List<DateTime> list = DateSpace(start, end, 9);


C# 根据开始时间和结束时间计算的问题

不知道理解的对不对、。