c# - 如何在 C# 中将时间划分为相等的槽

标签 c# datetime time

我想在 C# 中将时间等间隔划分。例如,从下午 3:00 到下午 6:00 创建间隔为 45 分钟的时间间隔(例如,下午 3:00、下午 3:45、下午 4:30 .... 下午 6:00。 我怎样才能在 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

关于c# - 如何在 C# 中将时间划分为相等的槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17607934/

相关文章:

c# - 如何在类内部调用构造函数?

c# - 从另一个方法引用变量

javascript - 在 AngularJS 中检测和验证客户端日期更改

ruby - 检查字符串是否等于有效月份 ruby​​?

java - AudioRecord.StartRecording() 抛出 Java.Lang.IllegalException 表示未初始化的 AudioRecorder

c# - 在 Visual Studio 2019 中升级 xproj

php - "order by date"字符串类型

c++ - 测量的 fps 高于理论值

c - gettimeofday 能够处理夏令时吗?

c - 如何将 unsigned long long 类型的刻度转换为可读时间格式?