博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
计算删除日期(二)
阅读量:6637 次
发布时间:2019-06-25

本文共 889 字,大约阅读时间需要 2 分钟。

@echo on
:: 求N天前的日期
:: 日期可以带星期,但是,必须以年月日的顺序排列
:: 年份必须是四位,否则会出错
@echo on
:Main
cls
set day=%date%
set days=0
echo.&echo.
echo       当前日期是:%day%
echo.&set /a input=2
setlocal enabledelayedexpansion
:: 提取日期
for /f "tokens=1-3 delims=-/. " %%i in ("%day%") do (
    set /a sy=%%i, sm=100%%j %% 100, sd=100%%k %% 100
)
set /a sd-=input
if %sd% leq 0 call :count
cls&echo.&echo.
echo       当前日期是:%day%
echo.
set sm=0%sm%
set sd=0%sd%
echo       %input% 天前的日期是:%sy%-%sm:~-2%-%sd:~-2%
::计算的最终删除日期

set date=%sy%-%sm:~-2%-%sd:~-2%
pause

:count
set /a sm-=1
if !sm! equ 0 set /a sm=12, sy-=1
call :days
set /a sd+=days
if %sd% leq 0 goto count
goto :eof

:days
:: 获取指定月份的总天数
set /a leap="^!(sy %% 4) & ^!(^!(sy %% 100)) | ^!(sy %% 400)"
set /a max=28+leap
for /f "tokens=%sm%" %%i in ("31 %max% 31 30 31 30 31 31 30 31 30 31") do set days=%%i
goto :eof

本文转自 韬光星夜 51CTO博客,原文链接:http://blog.51cto.com/xfqxj/770420,如需转载请自行联系原作者

你可能感兴趣的文章
和为S的连续正数序列
查看>>
javascript 事件的两种绑定方法
查看>>
Git 代码撤销、回滚到任意版本(当误提代码到本地或master分支时)
查看>>
sort
查看>>
应用HTMLTestRunner整合测试报告
查看>>
WebApi 文件上传
查看>>
C++—模板(1)模板与函数模板
查看>>
OAuth2.0认证介绍
查看>>
unity3d与web网页通信
查看>>
【转载】Secure WCF RESTful service using OAUTH
查看>>
jquery插件的写法
查看>>
Tomcat--startup.bat文件
查看>>
day45-python实例练习
查看>>
三、Redis操作
查看>>
解决jenkins下使用HTML Publisher插件后查看html报告显示不正常
查看>>
使用mvc3实现ajax跨域
查看>>
CentOS安装配置Samba
查看>>
ISCSI测试
查看>>
java算法面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序 ;读取docx 读取doc 使用poi 相关jar包提集提供下载...
查看>>
回溯法 - 数据结构与算法
查看>>