首页 > 解决方案 > 从 Get-Date/DateTime 对象中减去小时数

问题描述

我正在研究 Powershell 的基础知识以避免一些愚蠢的误解,所以我正在从事一些杂项项目。我想采用 Cisco 间隔值(24 小时内 15 分钟间隔 = 96 个间隔)并输出错误时间。

例如,如果所讨论的间隔是 2,并且当前是上午 11:00,则间隔时间将是昨天上午 11:30。

到目前为止,我所拥有的只是方程式,但我不确定如何将 DateTime 对象设置到我可以为方程式操纵它的程度。

$myInt = Read-Host "Interval Number";
$lapsed =  ([int] $myInt - [int]96) * [int]15 / 60
$currentTime = Get-Date

如果可能的话,我想基本上用我当前的时间,减去小时数,然后从中创建一个新时间。

解决方案代码:

$myInt = Read-Host "Interval Number";
$interval =  ([int] $myInt - [int]96) * [int]15 / 60
$currentTime = Get-Date 
"Current time is: $currentTime"

$elapsedTime = $currentTime.AddHours(-$lapsed)
"Interval $myInt reported at $elapsedTime"

标签: powershell

解决方案


我的解决方案是使用AddHours() Get-Date.AddHours()减去间隔中经过的小时数。

$myInt = Read-Host "Interval Number";
$interval =  ([int] $myInt - [int]96) * [int]15 / 60
$currentTime = Get-Date 
"Current time is: $currentTime"

$elapsedTime = $currentTime.AddHours(-$lapsed) ## Subtract the value of $lapsed from $currentTime
"Interval $myInt reported at $elapsedTime"

推荐阅读