标题: [日期时间] 批处理如何把1970,年1月1日,改成指定的时间? [打印本页]
作者: 单车少男 时间: 2015-7-6 14:27 标题: 批处理如何把1970,年1月1日,改成指定的时间?
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- :DateToDays %yy% %mm% %dd% days
- ::
- :: 作者:Ritchie Lawrence, 2002-09-26. 版本 1.0
- ::
- :: 功能:返回从 1970 年 1 月 1 日到给定的日期之间所经过的天数。
- :: 适用于 NT4/2000/XP/2003.
- ::
- :: 参数:%1 待转换的年,两位或者四位(传值调用)
- :: %2 待转换的月,可以以零开头(传值调用)
- :: %3 待转换的日,可以以零开头(传值调用)
- :: %4 该变量用于接收所经过的天数(引用调用)
- :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- setlocal ENABLEEXTENSIONS
- set yy=%1&set mm=%2&set dd=%3
- if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
- 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 %4=%j%&goto :EOF
复制代码
作者: DAIC 时间: 2015-7-6 15:38
改这个函数肯定不是你的最终目的,具体说说你想干嘛吧。
作者: pcl_test 时间: 2015-7-6 19:13
本帖最后由 pcl_test 于 2015-7-6 19:17 编辑
- 1>1/* :
- @echo off
- title 计算两个指定日期相差的天数
- set "date1=2015-07-01"
- set "date2=2015-7-6"
- for /f "delims=" %%a in ('echo;%date1% %date2% ^|cscript -nologo -e:jscript %~f0') do set "days=%%a"
- echo;%date1%至%date2%共相差%days%天
- pause&exit/b
- */
-
- var Arr = WScript.StdIn.ReadLine().replace(/[^\d\s]/g,"-").split(" ");
- var oDate1= Arr[0].split("-");
- var oDate2= Arr[1].split("-");
- var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
- var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
- var Days = parseInt(Math.abs(strDateS - strDateE )/1000/60/60/24);
- WSH.Echo(Days);
复制代码
作者: CrLf 时间: 2015-7-6 20:43
举个栗子- @echo off
- call :DateToDays 2015 1 1 天数
- call :DateToDays 0 1 1 修正值
- set /a 公元伊始的天数=天数-修正值
- echo 公元伊始的天数
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |