DOS批处理,确定是否是该月的最后一个星期一?

发布于 2024-11-26 20:05:22 字数 55 浏览 1 评论 0原文

是否可以在 DOS 批处理文件中测试当前日期是否是该月的最后一个星期一?如果是这样,我该怎么做?

Is it possible within a DOS batch file to test if the current day is the last Monday of the month? If so, how can I do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弄潮 2024-12-03 20:05:22

我认为这会起作用...测试星期几,然后日期是否大于 24(或 23 对于有 30 天的月份,或者 21 在二月的情况下...那就是 22闰年,所以你也想添加该测试):

@echo off
set Day=%date:~0,3%
IF "%Day%"=="Mon" set Monday=1
set today=%date:~7,2%
set lim=24
if "%date:~4,2%"=="02" set lim=21
if "%date:~4,2%"=="04" set lim=23
if "%date:~4,2%"=="06" set lim=23
if "%date:~4,2%"=="09" set lim=23
if "%date:~4,2%"=="11" set lim=23
if "%today%" GTR "%lim%" set Last=1
if "%Monday%"==1 goto itsMonday
:itsMonday
if "%Last%"=="1" echo last monday of the month
:end

I think this will work...test for the day of the week, and then whether the date is greater than 24 (or 23 for months with 30 days, or 21 in the case of February...that'd be 22 in leap years, so you'd want to add that test as well):

@echo off
set Day=%date:~0,3%
IF "%Day%"=="Mon" set Monday=1
set today=%date:~7,2%
set lim=24
if "%date:~4,2%"=="02" set lim=21
if "%date:~4,2%"=="04" set lim=23
if "%date:~4,2%"=="06" set lim=23
if "%date:~4,2%"=="09" set lim=23
if "%date:~4,2%"=="11" set lim=23
if "%today%" GTR "%lim%" set Last=1
if "%Monday%"==1 goto itsMonday
:itsMonday
if "%Last%"=="1" echo last monday of the month
:end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文