尝试计算\来自今天在powershell中确定第6个业务。 是否有可用的脚本\功能?
示例: 如果今天的日期是2018年2月4日,那么从今天起的第6个工作日是2018年12月12日。 我如何使用powershell获取该日期?
答案 0 :(得分:0)
我认为这适用于您的情况。 如果当前迭代在星期六登陆,则增加2天,如果在星期日登陆,则增加1天。可能有更好的方法,但我知道这有效。
编辑:如果您需要考虑假期让我知道,我没有想到它,我可以编辑此脚本以包含它。
$daystoadd = 7
$CurrentDate = Get-date
For ($i = 1; $i -le $daystoadd; $i++) {
$CurrentDate = $CurrentDate.adddays(1)
if ($CurrentDate.DayOfWeek -eq 'Saturday') {
$CurrentDate = $CurrentDate.adddays(2)
}
if ($CurrentDate.DayOfWeek -eq 'Sunday') {
$CurrentDate = $CurrentDate.adddays(1)
}
}
$CurrentDate
答案 1 :(得分:0)
@Sumanth专门要求第六个工作日,所以这应该可以解决问题:
function SixthBusinessDay($date)
{
$daysToAdd = 8,8,8,8,8,10,9
$weekDay = $date.DayOfWeek.value__
$sixtBusinessDay = $date.AddDays($daysToAdd[$weekDay])
return $sixtBusinessDay
}
根据所有日子需要至少六天和一个周末才能成为第六个工作日,但周五需要额外两天,周六需要额外一天。
运行此:
(SixthBusinessDay (Get-date "2018-1-29")).ToString("dddd dd/MM")
(SixthBusinessDay (Get-date "2018-1-30")).ToString("dddd dd/MM")
(SixthBusinessDay (Get-date "2018-1-31")).ToString("dddd dd/MM")
(SixthBusinessDay (Get-date "2018-2-1")).ToString("dddd dd/MM")
(SixthBusinessDay (Get-date "2018-2-2")).ToString("dddd dd/MM")
(SixthBusinessDay (Get-date "2018-2-3")).ToString("dddd dd/MM")
(SixthBusinessDay (Get-date "2018-2-4")).ToString("dddd dd/MM")
给出以下结果:
Tuesday 06-02 Wednesday 07-02 Thursday 08-02 Friday 09-02 Monday 12-02 Monday 12-02 Monday 12-02