首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#中将时间划分为相等的时隙

如何在C#中将时间划分为相等的时隙
EN

Stack Overflow用户
提问于 2013-07-12 13:26:18
回答 3查看 4.3K关注 0票数 2

我想在C#中以相等的间隔划分时间。例如,从下午3:00到下午6:00创建间隔为45分钟的时间间隔(例如,下午3:00,下午3:45,下午4:30……下午6:00我怎样才能在C#中实现这个?

EN

回答 3

Stack Overflow用户

发布于 2018-08-11 05:07:51

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

代码语言:javascript
运行
复制
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中,输出如下所示:

代码语言:javascript
运行
复制
6/17/2018 15:00:00
6/17/2018 15:45:00
6/17/2018 16:30:00
6/17/2018 17:15:00
票数 3
EN

Stack Overflow用户

发布于 2013-07-12 13:29:55

Datetime.AddMinutes(double value)应该能做你想做的事情。只要继续添加,直到添加的结果超过您拥有的最大日期/时间。

注意::这假设您知道自己的区间。另一方面,如果您需要将时间跨度拆分为相等的n个部分,则需要一种不同的方法,如here所示。

票数 1
EN

Stack Overflow用户

发布于 2013-07-12 13:41:52

尝尝这个

代码语言:javascript
运行
复制
        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);
        }

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17607934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档