如何在C#中等分时间

本文关键字:时间 | 更新日期: 2023-09-27 18:22:13

我想在C#中以相等的间隔划分时间。比如从下午3点到下午6点,创建间隔为45分钟的时间间隔(例如,下午3点、下午3点45分、下午4点……下午6点)。我如何在C#中实现这一点?

如何在C#中等分时间

您可以使用DateTime.Ticks属性来定义间隔,然后根据定义的间隔创建一系列DateTime对象。下面的示例可以在LINQpad中运行。根据文档,一秒钟内有10000000个刻度。考虑到这一点:

var startTS = Convert.ToDateTime("6/17/2018 15:00:00");
var endTS = Convert.ToDateTime("6/17/2018 18:00:00");
long ticksPerSecond = 10000000;
long ticksPerMinute = ticksPerSecond * 60;
long ticksPer45Min = ticksPerMinute * 45;
long startTSInTicks = startTS.Ticks;
long endTsInTicks = endTS.Ticks;
for(long i = startTSInTicks; i <= endTsInTicks; i+=ticksPer45Min)
{
    new DateTime(i).Dump();
}

在LINQpad中,输出如下:

6/17/2018 15:00:00
6/17/2018 15:45:00
6/17/2018 16:30:00
6/17/2018 17:15:00

试试这个

        DateTime StartTime = DateTime.Parse("3:0:0");//If pm it should be 15
        DateTime EndTime = DateTime.Parse("6:0:0");//If pm it should be 18
        while (StartTime!=EndTime)
        {
            double minuts = +45;
            StartTime = StartTime.AddMinutes(minuts);
        }

希望这能帮助

Datetime.AddMinutes(双值)应该可以满足您的需求。只需继续添加,直到添加结果超过您拥有的最长日期/时间。

注意:这假设您知道您的间隔。另一方面,如果您需要将时间跨度划分为相等的n部分,则需要不同的方法,如下所示。