我正在尝试破解一个脚本,该脚本返回今天,本周和本月向某些邮箱收发的电子邮件数量。我写了这篇文章,对自己感觉很好,直到我意识到自己的逻辑是错误的,并且它返回了最近的24小时(get-date。(adddays(-1)))和最近的7个连续的24小时周期(get-date.adddays(- 7))等

找出要计算的月份的第一天并不难,找到了要复制的代码段

$firstDayOfMonth = Get-Date ((("01/" + (Get-Date $today).Month).ToString() + "/" + ((Get-Date $today).Year).ToString() + " 00:00:00"))

它以01/开头,并将今天的月份和年份添加为字符串,然后追加午夜时间并将整个内容捆绑到system.time对象中,但是我不能在一周中做到这一点。

System.time对象具有.DayOfWeek属性,我可以切换该属性以找出距上周一多少天,并且我有一个$ Monday变量,该变量包含上周一的这个时间,如何修改该变量以引用到上周一的午夜

最佳答案

本月的第一个星期一

do {
    $n++
    $date = (date -Hour 0 -Minute 0 -Second 0).AddDays(-$n)
}
Until ( `
    $date.DayOfWeek -eq "Monday" -and `
    $date.Day -le 7 `
)

一周的第一个星期一
$n = 0
do {
    $date = (date -Hour 0 -Minute 0 -Second 0).AddDays(-$n)
    $n++
}
Until ( $date.DayOfWeek -eq "Monday" )

关于date - 上周一午夜在 Powershell 中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21665362/

10-11 07:48