首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到最近的15分钟间隔的时间

问到最近的15分钟间隔的时间
EN

Stack Overflow用户
提问于 2021-08-05 04:21:05
回答 3查看 322关注 0票数 1

这是我用来将日期舍入15分钟间隔(0015,30,45)的代码。

正如你从这个例子中看到的,它只是圆圈下来。

我怎样才能解决这个问题,这样它才能旋转到实际的最接近的15分钟,而不只是把它圈起来?

代码语言:javascript
复制
try
{$TodayDate = Get-Date -Date "6/25/2019 12:46:22"}
catch
{$TodayDate = Get-Date -Date "25/06/2019 12:46:22"}

$Date1 = $TodayDate
$Date2 = $TodayDate.AddMinutes(-2)
Write-Host "Actual Date: $Date1"
Write-Host "Rounded Date: $($Date1.AddMinutes(- $Date1.Minute % 15 ))"
Write-Host "Actual Date: $Date2"
Write-Host "Rounded Date: $($Date2.AddMinutes(- $Date2.Minute % 15 ))"

实际日期: 06/25/2019 12:46:22

四舍五入日期: 06/25/2019 12:45:22

实际日期: 06/25/2019 12:44:22

舍入日期: 06/25/2019 12:30:22

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-05 09:12:33

当你同时将相同的问题交到不同的论坛时,你至少应该把其他论坛的链接和你的问题放在一起,以避免有人愿意帮你做两次或更多的工作。

谢谢

https://forums.powershell.org/t/time-to-the-nearest-15-min-interval/17238?u=olaf

下面是我的代码建议,将当前日期/时间四舍五入到最接近的15分钟:

代码语言:javascript
复制
$FifteenMinutes = (New-TimeSpan -Minutes 15 ).Ticks
$Date = Get-Date
$Ticks = ([Math]::Round($Date.Ticks / $FifteenMinutes, 0) * $FifteenMinutes) -as [long]
[DateTime]$Ticks
票数 1
EN

Stack Overflow用户

发布于 2021-08-05 06:11:07

代码语言:javascript
复制
$9e9 = (Get-Date 0).AddMinutes(15).Ticks # 9,000,000,000
$TodayDate = Get-Date -Date "6/25/2019 12:46:22"
$Date1 = $TodayDate
$Date2 = $TodayDate.AddMinutes(-2)
Write-Host "Actual Date: $Date1"
Write-Host "Rounded Date: $(Get-Date ($9e9 * ([int]($Date1.Ticks / $9e9))))"
Write-Host "Actual Date: $Date2"
Write-Host "Rounded Date: $(Get-Date ($9e9 * ([int]($Date2.Ticks / $9e9))))"

产量:

代码语言:javascript
复制
Actual Date: 06/25/2019 12:46:22
Rounded Date: 06/25/2019 12:45:00
Actual Date: 06/25/2019 12:44:22
Rounded Date: 06/25/2019 12:45:00
票数 1
EN

Stack Overflow用户

发布于 2021-08-05 06:28:59

代码语言:javascript
复制
try { $TodayDate = Get-Date -Date '6/25/2019 12:46:22' }
catch { $TodayDate = Get-Date -Date '25/06/2019 12:46:22' }

$Date1 = $TodayDate
Write-Host "Actual Date: $Date1"
Write-Host "Rounded Date: $( $Date1.AddMinutes( $Date1.Minute % 15 -le 7 ? -($Date1.Minute % 15) : 15 - ($Date1.Minute % 15)) )"

$Date2 = $TodayDate.AddMinutes(-2)
Write-Host "Actual Date: $Date2"
Write-Host "Rounded Date: $( $Date2.AddMinutes( $Date2.Minute % 15 -le 7 ? -($Date2.Minute % 15) : 15 - ($Date2.Minute % 15)) )"

结果

代码语言:javascript
复制
Actual Date: 06/25/2019 12:46:22
Rounded Date: 06/25/2019 12:45:22
Actual Date: 06/25/2019 12:44:22
Rounded Date: 06/25/2019 12:45:22
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68660586

复制
相关文章

相似问题

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