powershell将从今天开始计算第20个工作日

powershell将从今天开始计算第20个工作日,powershell,Powershell,正在尝试在powershell中计算\确定从今天开始的第6项业务。 是否有脚本\函数可用于相同的应用程序 例如: 如果今天的日期为2018年2月4日,则从今天起的第6个工作日为2018年2月12日。 如何使用powershell获得该日期?我认为这对您的情况适用。 如果当前迭代在星期六进行,则增加2天;如果在星期日进行,则增加1天。也许有更好的方法,但我知道这是可行的 编辑:我没有考虑它,如果你需要考虑假期让我知道,我可以编辑这个脚本,包括它 $daystoadd = 7 $CurrentDa

正在尝试在powershell中计算\确定从今天开始的第6项业务。 是否有脚本\函数可用于相同的应用程序

例如: 如果今天的日期为2018年2月4日,则从今天起的第6个工作日为2018年2月12日。
如何使用powershell获得该日期?

我认为这对您的情况适用。 如果当前迭代在星期六进行,则增加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

@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 星期二06-02 星期三07-02 星期四08-02 星期五09-02 星期一12-02 星期一12-02 星期一12-02
可能重复步骤1:创建一个函数来查找下一个工作日,例如从上面的链接。第二步:循环做20次。为什么标题上写20天,正文上写第6天?我相信你增加的一天太多了。我想说,星期一之后的第六个工作日将是之后的星期二,您的代码将其设置为之后的星期三。