计算N天前的日期的bat脚本

简介:
复制代码
@echo off
rem 计算指定天数之前的日期
set DaysAgo=10
rem 假设系统日期的格式为yyyy-mm-dd
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
set DstDate=%DstYear%-%DstMonth%-%DstDay%
echo %DaysAgo%天的日期是%DstDate%
pause
goto :eof

:DateToDays %yy% %mm% %dd% days
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

:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF
复制代码

 


本文转自茄子_2008博客园博客,原文链接:http://www.cnblogs.com/xd502djj/archive/2011/12/31/2308605.html,如需转载请自行联系原作者。


目录
相关文章
|
5月前
|
Unix Linux Shell
【Shell 编程指南 日期命令】Date命令:显示与设置系统时间和日期
【Shell 编程指南 日期命令】Date命令:显示与设置系统时间和日期
116 0
|
2月前
|
关系型数据库 MySQL
备份批处理文件 bat 生成 date 取年时,只取到周
备份批处理文件 bat 生成 date 取年时,只取到周
27 0
|
Shell
备份当前日期文件
备份当前日期文件
63 0
|
存储 Java 测试技术
JMeter 内置日期(时间)函数总结
JMeter 内置日期(时间)函数总结
211 0
|
Linux
date命令计算出系统启动时间
1 date简介 在linux 中date命令有很多用法,本文简单介绍一下 -d 参数的用法。
207 0
BAT 批处理命令 - 获取时间并进行自定义年月日、时分秒格式实例演示
BAT 批处理命令 - 获取时间并进行自定义年月日、时分秒格式实例演示
1095 0
BAT 批处理命令 - 获取时间并进行自定义年月日、时分秒格式实例演示
|
Unix Serverless PHP
PHP函数运用之返回某个日期的前一天和后一天
在上一篇文章《PHP函数运用之计算截止某年某月某日共有多少天》中,我们介绍了利用strtotime()函数计算两个给定日期间时间差的方法。这次我们来来看看给大一个指定日期,怎么返回它前一天和后一天的日期。感兴趣的朋友可以学习了解一下~ 本文的重点是:返回给定时间的前一天、后一天的日期。那么要怎么操作呢? 其实很简单,PHP内置的strtotime() 函数就可以实现这个操作!下面来看看我的实现方法: 返回某个日期的前一天的实现代码
740 0
Window bat 获取日期 时间 格式化
比如,如果你的机器上时间的输出是这样子的:  c:\>echo %date%-%time%  2012-03-31 星期六- 6:44:02.50  那么,要想得到输出20120331- 64402,可以这样截取字符串:  c:\>echo %date:~0,4%%date:~5,2%%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%  20120331- 65406  表示取从0位置开始4个字符等等。
1807 0
|
Shell Linux
Linux shell获取昨天 N天前日期、后天日期等
使用date -d 选项:    date  +"%Y%m%d" -d  "+n days"         今天的后n天日期         date  +"%Y%m%d" -d  "-n days"          今天的前n天日期 比如: [r...
2325 0
|
数据库 数据安全/隐私保护 SQL