返回列表 发帖

[日期时间] [已解决]批处理计算日期goto :eof的问题,求解答

本帖最后由 科零仿佛 于 2019-10-30 00:53 编辑
@echo off &setlocal ENABLEEXTENSIONS
for /f "tokens=1-3 delims=/-, " %%a in ('echo/%1') do (
  set yy=%%a & set mm=%%b & set dd=%%c
)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %2=%j%&goto :EOF COPY
为卡卡西带盐

为什么要在最后加一个goto :eof呢,这样不是没意义吗
为卡卡西带盐

TOP

这个应该是计算日期的“函数”,“函数”的调用者不一定把它放到脚本最后面,可能放在脚本中间。加 goto:eof 很有必要。

TOP

回复 3# WHY


    额,又去看了一下,好像是这样,大佬能再解释下
set /a dd=100%dd%%%100,mm=100%mm%%%100COPY
左右都加一个100是干嘛用的
为卡卡西带盐

TOP

本帖最后由 WHY 于 2019-10-28 09:00 编辑

回复 4# 科零仿佛


    set /a dd=100%dd% %% 100
主要目的是去掉前面的 0,比如原来的变量 dd 为 08, 处理后 dd 为 8,避免后面的 set /a 计算报错。

TOP

回复 5# WHY


    能讲一下里面具体的原理吗,为什么加个100就可以去掉那个0,我还是没看懂
为卡卡西带盐

TOP

回复 6# 科零仿佛


比如原来的变量 dd 为 08
它不是加个100变成108
而是10008 也就是一万零8
然后 10008 % 100 也就是对100取余数得到数字8
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表