gpt4 book ai didi

c# - 将 DateTime 舍入为 30 分钟时处理没有分钟的小时

转载 作者:行者123 更新时间:2023-12-01 21:43:24 26 4
gpt4 key购买 nike

我正在尝试模仿 Google 日历和 Outlook 处理时间选择的方式,其中所有时间条目相隔 30 分钟。除了一件事之外,我几乎所有的事情都与功能测试有关。我的问题是,我不知道如何确保始终将当前日期四舍五入为 30 分钟。

我使用以下代码:

protected DateTime GetStartTime()
{
var spanTicks = TimeSpan.FromMinutes(30).Ticks;
var ticks = (Time.Now.Ticks + spanTicks - 1) / spanTicks;

return new DateTime(ticks * spanTicks);
}

这适用于大多数情况,除了上午 12:00(我希望它返回上午 12:30)和上午 8:56(我希望它返回上午 9:00)。

我该如何解决这个问题?

最佳答案

为什么要为蜱虫烦恼呢?您可以将时间强制精确为 :30:00,如下所示:

protected DateTime GetStartTime() {
var now = DateTime.Now;
int addHours;
int minute;
if (now.Minute >= 30) {
addHour = 1;
minute = 0;
} else {
addHour = 0;
minute = 30;
}
return new DateTime(now.Year, now.Month, now.Day, hour, minute, 0).AddHours(addHours);
}

关于c# - 将 DateTime 舍入为 30 分钟时处理没有分钟的小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com