标题: [其他] 命令行日期时间计算,按指定格式输出 [打印本页]
作者: laolong 时间: 2016-6-22 16:34 标题: 命令行日期时间计算,按指定格式输出
本帖最后由 laolong 于 2016-6-22 16:43 编辑
DateCalc -- 命令行日期时间计算
V2.2
因批处理计算日期时间比较麻烦,于是写了这个命令行程序。
运行于 XP 及以上Windows系统
在繁体中文系统中,以繁体中文显示,在其他系统中以简体中文显示。- DateCalc - 命令行日期时间计算
-
- V2.2 Copyright(C) 2016 hnfeng
-
- 格式1: DateCale.exe [/NowD|/NowDT]
- 格式2: DateCale.exe <参数1> <参数 2> [参数3] [参数4]
-
- 参数:
- /? 显示帮助
- /NowD 按当前系统的日期格式显示日期
- /NowDT 按当前系统的日期格式显示日期和时间
- 参数1 = <d|m|y|w|h|n|s> 指定计算单位
- d 指定计算单位为“天”
- m 指定计算单位为“月”
- y 指定计算单位为“年”
- w 指定计算单位为“周”
- h 指定计算单位为“小时”
- n 指定计算单位为“分钟”
- s 指定计算单位为“秒”
- 参数2 加减的量。例如: 5 或 -5
- 参数3 日期[和时间]的初始值。省略时为当前日期[和时间]
- 常见格式为: "yyyy/mm/dd [hh:mm:ss]"
- 也可以用 /NowD, /NowDT 代替当前日期[和时间]
- 参数4 输出结果的格式。缺省时,输出格式与“参数3”相同。
- 可以含数字1至6、英文字母、下划线,可以任意组合。
- 英文字母和下划线不变,而 123456 分别代表
- 日期格式的6个部分: "1/2/3 4:5:6",即:
- 1 2 3 4 5 6
- 2016/01/02 11:12:13
- 01/02/2016 11:12:13
-
- 例子:
- DateCalc.exe /NowD
- DateCalc.exe d 7
- DateCalc.exe d 7 /nowdt
- DateCalc.exe w -5 "2016/6/1"
- DateCalc.exe h 5 "2016/6/1 10:02:03"
- DateCalc.exe h 5 "2016/6/1 10:02:03" "123456"
- DateCalc.exe d -7 "2016/6/1" "23"
- DateCalc.exe d -7 /nowd "23"
- DateCalc.exe h 8 "23_45"
- DateCalc.exe h 0 /nowdt "Filename_123_45"
复制代码
- DateCalc.exe /nowd (获取当前系统日期)
- 2016/06/22
- --------------------------
- DateCalc.exe /nowdt (获取当前系统日期时间)
- 2016/06/22 16:31:51
- --------------------------
- DateCalc.exe d 7 (当前系统日期加 7 天)
- 2016/06/29
- --------------------------
- DateCalc.exe h -8 (当前日期时间减 8 小时)
- 2016/06/22 08:31:51
- --------------------------
- DateCalc.exe d -1 2016/3/1 (指定日期减 1 天)
- 2016/02/29
- --------------------------
- DateCalc.exe n 30 "2016/2/28 23:50:50" (指定日期时间加 30 分钟)
- 2016/02/29 00:20:50
- --------------------------
- DateCalc.exe n 30 "2000/1/1 20:10:30" "123_456" (指定日期时间加 30 分钟后,按
- 照指定格式输出)
- 20000101_204030
- --------------------------
- DateCalc.exe d -3 /NowDT "FileName_Test_23_45" (当前日期时间减 3 天后,按照指
- 定格式输出)
- FileName_Test_0619_1631
- --------------------------
- DateCalc.exe h 0 /nowdt ABCDE_fghijklmnopqrstuvwxyz_123_456 (当前日期时间加 0
- 小时,按照指定格式输出)
- ABCDE_fghijklmnopqrstuvwxyz_20160622_163152
-
- ====================================================
-
- DateCalc.exe x 3 "2000/1/1 10:10:10" (第1个参数错误)
- Error: 第1个参数错误!
-
- errorlevel:1
- --------------------------
- DateCalc.exe n xx "2000/1/1 10:10:10" (第2个参数错误)
- Error: 第2个参数错误!
-
- errorlevel:2
- --------------------------
- DateCalc.exe w -1 "2000/1/1" "123-456" (第4个参数错误--含无效字符“-”)
- Error: 第3或第4个参数错误!
-
- errorlevel:4
- --------------------------
复制代码
Demo.bat- @echo off
- for /f %%i in ('DateCalc.exe /NowD') do echo 当前日期:%%i
- for /f %%i in ('DateCalc.exe d -3 /NowD File_Name_123') do set filename=%%i.log
- echo 3天前文件名: %filename%
- echo.
-
- for /f "delims=" %%i in ('DateCalc.exe /NowDT') do echo 当前日期时间:%%i
- for /f %%i in ('DateCalc.exe h 8 /NowDT Test_123_45') do set filename=%%i.log
- echo 8小时以后文件名: %filename%
- echo.
-
- for /f "delims=" %%i in ('DateCalc.exe n 30 "2001/2/3 11:12:13"') do echo 指定时间 2001/2/3 11:12:13
- for /f %%i in ('DateCalc.exe n 30 "2001/2/3 11:12:13" Test_23_45') do set filename=%%i.txt
- echo 30分钟以后文件名: %filename%
- echo.
- pause
复制代码
结果:- 当前日期:2016/06/22
- 3天前文件名: File_Name_20160619.log
-
- 当前日期时间:2016/06/22 16:42:44
- 8小时以后文件名: Test_20160623_0042.log
-
- 指定时间 2001/2/3 11:12:13
- 30分钟以后文件名: Test_0203_1142.txt
复制代码
权限不够传不了图片,也传不了附件。
网盘下载吧:
链接:http://pan.baidu.com/s/1kUYrsDh 密码:eeio
作者: codegay 时间: 2016-6-22 17:58
楼主是DateCalc 作者?
作者: laolong 时间: 2016-6-23 12:47
回复 2# codegay
是的。只是与这里ID不同
作者: CrLf 时间: 2016-6-28 00:37
已收录:
http://www.bathome.net/s/tool/?key=datecalc
作者: laolong 时间: 2016-6-28 10:43
回复 4# CrLf
荣幸
谢谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |