计算删除日期(二)

简介:

@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,如需转载请自行联系原作者

相关文章
|
9月前
layerData指定日期可用或者不可用
layerData指定日期可用或者不可用
49 0
|
9月前
|
弹性计算 运维 Shell
解析日期和时间
【4月更文挑战第29天】
63 1
|
9月前
|
Linux C++ iOS开发
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
123 0
|
C语言 C++
C++ 如果设置日期 & 时间基础篇
C++ 如果设置日期 & 时间基础篇
计算日期到天数转换
计算日期到天数转换
147 0
|
存储 Linux 编译器
C++ 日期和时间的相关函数
C++ 日期和时间的相关函数
310 0
|
C语言 C++
C++ 如果设置日期 & 时间基础篇
C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。
日期获取方法
日期获取方法
202 0
计算两个字符串类型的日期相差的天数或者小时数,计算日期字符串到今天的年龄
计算两个字符串类型的日期相差的天数或者小时数,计算日期字符串到今天的年龄
194 0
|
存储 Unix 关系型数据库
关于日期及时间字段的查询
在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询。关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法。
345 0
关于日期及时间字段的查询