惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
月光博客
月光博客
腾讯CDC
Engineering at Meta
Engineering at Meta
博客园 - Franky
Vercel News
Vercel News
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
GbyAI
GbyAI
B
Blog
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog

博客园 - jblzg

用powershell脚本实现Andoird为不同市场编译、签名自动化,效率极大提高 JSON与Protocol Buffers Visual Studio 2008提高工作效率的小技巧 SQL Server 2008 事务日志物理文件尺寸无法减小的解决办法(含日志收缩(shrink)技巧) 用虚拟机实际体验Google Chromium OS (Chrome OS) Pre-Built 2009年互联网5大趋势之一:结构化的数据 由一个案例引出SQL注入防范(WebKnight),补救(数据修复)的思考 参加Google Developer Day 2009归来 网站首页、频道首页静态化的问题 宽高比例不固定的用户头像纵向居中的方法(不使用表格、代码精简、图片不变形) Canonical URL Tag - 继SiteMap之后最重要的搜索引擎优化实践 - jblzg 金额字符串转换成Decimal格式的怪问题引发的思考 对常规启用 IIS6.0 Gzip 方法的补充,用于解决wget、curl等无法得到压缩结果的问题 FCKeditor.NET的配置、扩展与安全性经验交流 搜狐博客列表页面分析 ASP.NET Web 开发中的静态资源(JS、CSS、图片)版本控制 避免修改Web.config的appSettings配置时导致的所有页面重编译 参加Google Developer Day 2008归来 一次有趣的Debug——使用Lumigent Log Explorer对SQL Server事务日志进行分析,对SQL Server事务、操作进行撤销(恢复)
转:批处理获得任意天前的日期
jblzg · 2010-03-05 · via 博客园 - jblzg

该批处理可以考虑到例如4月1日前一天是3月31日,而不是4月0日的问题,值得参考。

 

@echo off
:: 作者: namejm  出自:cn-dos
:: 求N天前的日期
:: 日期可以带星期,但是,必须以年月日的顺序排列
:: 年份必须是四位,否则会出错
@echo off
:Main
cls
set day
=%date%
set days
=0
echo.
&echo.
echo       当前日期是:
%day%
echo.
&set /p input=      请指定要追溯的天数:
setlocal enabledelayedexpansion
:: 提取日期
for /"tokens=1-3 delims=-/. " %%in ("%day%"do (
    set 
/a sy=%%i, sm=100%%%% 100, sd=100%%%% 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%
pause
>nul
goto Main

: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 /"tokens=%sm%" %%in ("31 %max% 31 30 31 30 31 31 30 31 30 31"do set days=%%i
goto :eof

原文链接:http://bbs.verybat.org/viewthread.php?tid=11441