标题: [日期时间] 批处理自定义函数日期转星期 DateToDayOfWeek [打印本页]
作者: pusofalse 时间: 2009-3-18 18:59 标题: 批处理自定义函数日期转星期 DateToDayOfWeek
从AutoIt的日期函数中找到的算法,在此向此算法的原作者Jos van der Zande致意。此函数的作用是:传递日期参数到函数,返回这一天是一星期中的第几天。- @echo Off
- Call :DateToDayOfWeek 2009 3 18 iDayOfWeek
- Echo %iDayOfWeek%
- Pause & Exit /b 0
- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :DateToDayOfWeek iYear, iMonth, iDay, ByRef weekday
- :: Returns the weekday number for a given date.
- :: %iYear% - A valid year in format YYYY.
- :: %iMonth% - A valid month in format MM.
- :: %iDay% - A valid day in format DD.
- :: %weekday% - Receives the result.
- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- Set /a numOfParams = 0
- For %%a in (%*) do Set /a numOfParams += 1
- If "%numOfParams%" neq "4" Exit /b 1
- SetLocal EnableExtensions
- Set /a aFactor, yFactor = 0, mFactor = 0, dFactor = 0
- Set /a aFactor = (14 - %~2) / 12, yFactor = %~1 - aFactor
- Set /a mFactor = %~2 + (12 * aFactor) - 2
- Set /a dFactor = 1 + (%~3 + yFactor + yFactor/4 - yFactor/100 + yFactor/400 + 31 * mFactor/12) %% 7
- EndLocal & Set "%~4=%dFactor%" & Exit /b 0
复制代码
作者: 随风 时间: 2009-3-18 19:10
Set /a aFactor, yFactor, mFactor, dFactor = 0
非常奇怪的定义变量的方法,这样能给这4个变量定义吗?
作者: pusofalse 时间: 2009-3-18 19:18 标题: 回复 2楼 的帖子
多谢指正!受其他语言影响,粗心粗到家了。。已经更正!
作者: Batcher 时间: 2009-3-18 19:26
这里也有此函数:Ritchie Lawrence 批处理函数库中英文版
http://bbs.bathome.net/thread-3056-1-1.html
作者: wxcute 时间: 2009-3-18 19:26
为什么星期三是第四天,是从周日开始算起吗?
不太习惯。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |