Board logo

标题: [已解决]批处理如何计算两个时间差多少天? [打印本页]

作者: jinzeyu    时间: 2011-3-7 18:00     标题: [已解决]批处理如何计算两个时间差多少天?

要求:代码简洁,完全没有错误。谢谢。要求用户输入2次
举例:输入20110301 和 20110310
就是10
详细点:我说的是第几天

[ 本帖最后由 jinzeyu 于 2011-3-8 13:58 编辑 ]
作者: CrLf    时间: 2011-3-7 18:18

拒绝回答没表述清楚的问题,免得回了帖又说不是这个意思
作者: Batcher    时间: 2011-3-7 20:28

  1. @echo off
  2. set /p DateBegin=请输入开始日期(yyyy-mm-dd):
  3. set /p DateEnd=请输入开始日期(yyyy-mm-dd):
  4. call :DateToDays %DateBegin:~0,4% %DateBegin:~5,2% %DateBegin:~8,2% DaysBegin
  5. call :DateToDays %DateEnd:~0,4% %DateEnd:~5,2% %DateEnd:~8,2% DaysEnd
  6. set /a DaysInter=DaysEnd-DaysBegin+1
  7. echo,%DaysInter%
  8. pause
  9. goto :eof
  10. :DateToDays %yy% %mm% %dd% days
  11. setlocal ENABLEEXTENSIONS
  12. set yy=%1&set mm=%2&set dd=%3
  13. if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
  14. set /a dd=100%dd%%%100,mm=100%mm%%%100
  15. set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
  16. set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
  17. endlocal&set %4=%j%&goto :EOF
复制代码

作者: CrLf    时间: 2011-3-7 21:12

http://bbs.bathome.net/thread-11128-1-1.html




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2