在Powershell中查找并格式化下一个营业日期

时间:2017-08-16 19:40:29

标签: powershell

我发现我可以通过

获得下一个营业日期
(Get-date)+"$(1+$(@(1,2-eq7-(Get-date).dayofweek)))"

但它采用长日期格式

我发现我可以用以下格式设置日期格式:

Get-Date -format "yyyyMMdd";

但我怎样才能将这两者结合起来呢?

我试过

(Get-date)+"$(1+$(@(1,2-eq7-(Get-date).dayofweek)))" -format 'yyyyMMdd'

没有运气!那我该怎么做呢。

我的目标是将值存储在变量中,但是会在下一个工作日添加。

$sdATE =  Get-Date -format "yyyyMMdd";

1 个答案:

答案 0 :(得分:1)

有一种误解,即日期类型的变量具有格式。

输出日期类型的变量时,它会应用默认日期格式或明确定义的日期格式。

$sdATE =  Get-Date -format "yyyyMMdd"

您的上一个命令会将日期转换为字符串,因此无需再次将其转换为日期(无论是显式还是显式),您都无法使用它进行计算。

> $sdATE.gettype()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object

要让您的营业日期公式输出所需的格式,您可以使用附加到包含整个公式的一对括号的.ToString()方法。

PS> ((Get-date)+"$(1+$(@(1,2-eq7-(Get-date).dayofweek)))").ToString('yyyyMMdd')
20170817