首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.DayOfWeek不包含op_Addition

System.DayOfWeek不包含op_Addition
EN

Stack Overflow用户
提问于 2019-03-26 22:48:48
回答 1查看 56关注 0票数 1

我有一个返回上周六日期的方法,它曾经在我运行它的旧位置上工作,但我将它移动到一个新位置来运行它,它不工作。我不确定这个版本的powerShell是否不同,这就是问题所在。它说PSVersion在新位置是4。旧位置的PSVersion为5.1。

这是我的方法,当我检查$newdate时,在这个运行之后和运行期间,它是空的。

代码语言:javascript
复制
function GetLastSaturdayDate()
{
   $date = Get-Date 
   $newdate = $date.AddDays(-($date.DayOfWeek+1)%7)
   return $newdate
}

当我在ps命令行运行命令时,它显示以下内容。当我刚刚运行脚本时,我没有看到这个错误消息:

代码语言:javascript
复制
Method invocation failed because [System.DayOfWeek] does not contain a method named 'op_Addition'.
At line:1 char:1
+ $newda = $date.AddDays(-($date.DayOfWeek+1)%7)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (op_Addition:String) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound

有什么办法让date Any在旧的powershell版本中工作吗?也许我需要包含或使用像数学这样的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-26 23:00:56

因为您的DayOfWeek成员是System.DayOfWeek类型的枚举,所以powershell尝试使用System.Enum类型执行加法,但该类型不支持加法,除非它具有Flags属性。纠正这种情况的方法是翻转操作数,这样DayOfWeek就会被强制转换为System.Int32

代码语言:javascript
复制
1 + $date.DayOfWeek

或者(对于样式),您可以自己进行类型转换:

代码语言:javascript
复制
[int]$date.DayOfWeek+1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55360026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档