从Powershell中的两个日期获得天数差异

Kar*_*ran 8 powershell

我试图在Windows PowerShell中获得天数差异,我正在提取一年中的最后日期即.20171231(yyyyMMdd)来自我在本地存储该文件中日期的文本文件.

这是下面的代码,我正在尝试,但无法得到天的差异,通过直接减去得到错误的输出,如果我正在转换从文件中提取的字符串,然后用日期类型减去它,即使那时我得到错误的输出.

$DateStr = (Get-Date).ToString("yyyyMMdd")

$content = Get-Content C:\Users\Date.txt 

$diff = $content.ToString();

#Convert it to the date type
$diff = [datetime]::parseexact($diff, 'yyyyMMdd', $null)

#$diff3 = $diff - $DateStr
Run Code Online (Sandbox Code Playgroud)

von*_*ryz 20

使用,New-TimeSpan因为它代表一个时间间隔.像这样,

$d1 = '2017-01-01'
$d2 = '2017-05-01'
$ts = New-TimeSpan -Start $d1 -End $d2
$ts.Days # Check results
120
Run Code Online (Sandbox Code Playgroud)

  • `(New-TimeSpan-开始'2017-01-01'-结束'2017-05-01')。天(只是在这里以一个表达式的形式出现) (2认同)

小智 8

一个快速、肮脏的单行 powershell 脚本,用于获取当前日期和任何未来日期之间的差异:

[math]::Ceiling((([DateTime]'mm-dd-yyyy')-(Get-Date)).TotalDays)
Run Code Online (Sandbox Code Playgroud)