代码放在code标签里面就可以了,比如:
http://bbs.bathome.net/thread-3473-1-1.html
如果您需要知道两个日期之间的间隔天数,那么可以用 New-TimeSpan 轻松地获得: | $startdate = Get-Date | | $enddate = Get-Date -Date '2014-09-12' | | | | $difference = New-TimeSpan -Start $startdate -End $enddate | | $difference.DaysCOPY |
然而,如果您不仅想知道两者之间的间隔天数,而且还希望精确地获取每一天的日期对象,那么可以用这个方法: | $startdate = Get-Date | | $enddate = Get-Date -Date '2014-09-12' | | | | $difference = New-TimeSpan -Start $startdate -End $enddate | | $days = [Math]::Ceiling($difference.TotalDays)+1 | | | | 1..$days | ForEach-Object { | | $startdate | | $startdate = $startdate.AddDays(1) | | }COPY |
这一次,PowerShell 输出两个指定日期之间的所有日期对象。
当您了解了精确获取每个日期对象(而不仅是总天数)的方法之后,您可以过滤(例如以星期数),并查找距离您放假或退休之前还有多少个星期天或工作日。
以下代码是获取工作日用的: | $startdate = Get-Date | | $enddate = Get-Date -Date '2014-09-12' | | | | $difference = New-TimeSpan -Start $startdate -End $enddate | | $difference.Days | | | | $days = [Math]::Ceiling($difference.TotalDays)+1 | | | | 1..$days | ForEach-Object { | | $startdate | | $startdate = $startdate.AddDays(1) | | } | | | Where-Object { $_.DayOfWeek -gt 0 -and $_.DayOfWeek -lt 6}COPY |
这段代码时统计工作日天数用的: | $startdate = Get-Date | | $enddate = Get-Date -Date '2014-09-12' | | | | $difference = New-TimeSpan -Start $startdate -End $enddate | | "Days in all: " + $difference.Days | | | | $days = [Math]::Ceiling($difference.TotalDays)+1 | | | | $workdays = 1..$days | ForEach-Object { | | $startdate | | $startdate = $startdate.AddDays(1) | | } | | | Where-Object { $_.DayOfWeek -gt 0 -and $_.DayOfWeek -lt 6} | | | Measure-Object | | | Select-Object -ExpandProperty Count | | | | "Workdays: $workdays"COPY |
|