gpt4 book ai didi

powershell - 使用 PowerShell 的日期之间的月差

转载 作者:行者123 更新时间:2023-12-05 08:12:43 29 4
gpt4 key购买 nike

我需要有 AD 用户帐户到期日期,现在还有多少个月和日期将被禁用。

我尝试了下面的代码,但我进入了第 1 个月,我还不到一个月,我想得到像 0 个月零 27 天这样的答案

$StartDate (DateNow)
2019-08-29 00:00:00

AccountExpirationDate
---------------------
2019-09-26 00:00:00

$ExpirDate = Get-ADUser test111 -Properties AccountExpirationDate | select AccountExpirationDate

AccountExpirationDate
---------------------
2019-09-26 00:00:00

$EndDate= $ExpirDate.AccountExpirationDate

2019-09-26 00:00:00


$StartDate = (GET-DATE)

2019-08-29 00:00:00


NEW-TIMESPAN –Start $StartDate –End $EndDate

Days : 27
Hours : 10
Minutes : 29
Seconds : 56


$monthdiff = $EndDate.month - $StartDate.month + (($EndDate.Year - $StartDate.year) * 12)

1

(这里我拿到了1号但是我还不到一个月)

最佳答案

我发现在 PowerShell 中没有简单的方法来执行此操作(因为 TimeSpan 不支持月份计数),因此我最终得到以下结果。从两个日期的年份开始,如果当年的开始日期还没有过去,则取他们的差值并改正。然后对月份做同样的事情:

$StartDate = [DateTime]'2021-01-23'
$today = Get-Date
$daydiff = New-TimeSpan -Start $StartDate -End $today

$yeardiff = $today.year - $StartDate.year
If($yeardiff -gt 0 -And $StartDate.month -gt $today.month
-And $StartDate.day -gt $today.day) {
$yeardiff = $yeardiff -1
}

$monthdiff = $today.month - $StartDate.month + ($yeardiff * 12)
If($StartDate.day -gt $today.day) { $monthdiff = $monthdiff -1 }

Write-Host "$($daydiff.days) days | $($monthdiff) months"

我能想出的最简单的解决方案。

关于powershell - 使用 PowerShell 的日期之间的月差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57709450/

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