在批处理文件中获取工作日的简单方法

问题描述 投票:0回答:3

我正在寻找一个很好的简单答案来从 %date% 获取星期几,并看到了很多答案,但没有一个非常雄辩。

date batch-file dayofweek weekday
3个回答
1
投票

您要求它,所以它就在这里!

@echo off
setlocal

for /F "tokens=1-3 delims=/" %%a in ("%date%") do set /A "M=1%%a-100,D=1%%b-100,Y=%%c"
set /A "DOW=( D + 30*(M-1)+M/2+(M>>3)*(M&1) - !(((2-M)>>31)+1)*(2-!(Y%%4)) +6)%%7+1"
for /F "tokens=%DOW%" %%a in ("Sunday Monday Tuesday Wednesday Thursday Friday Saturday") do echo %date% is %%a

这是一个 “从 %date% 获取星期几的好简单答案”。不过,我恐怕不太明白“非常能言善辩”是什么意思……

;)

此公式假设

%date%
以 MM/DD/YYYY 格式显示日期。如果顺序不同,只需更改公式中的
M
D
变量即可。

此方法需要在每年新的一年进行一次小调整:只需将

+6
调整更改为在新年的 1 月 1 日获得正确的星期几的值(该值必须在 0 到 6 之间)。这样做是为了保持方法“简单易行”......


1
投票

使用 Powershell 命令的另一个解决方案:

@echo off
Title Get and Show The day of the week
@for /f "delims=" %%a in ('Powershell -C "(Get-Date).ToString('dddd')"') do Set "DayOfWeek=%%a"
echo( The day of the Week is %DayOfWeek%
Pause

0
投票
@echo off
for /f %%i in ('powershell ^(get-date^).DayOfWeek') do set dow=%%i
echo %dow%
© www.soinside.com 2019 - 2024. All rights reserved.