标题: [其他] 批处理将当前数字日期转为中文小写数字日期 [打印本页]
作者: youxi01 时间: 2008-1-9 23:33 标题: 批处理将当前数字日期转为中文小写数字日期
本帖最后由 pcl_test 于 2017-6-22 17:54 编辑
比如:2008-1-9
转为:二零零八年一月九日
作者: 随风 时间: 2008-1-10 00:44
:- @echo off&setlocal enabledelayedexpansion
- :: 把日期转换成大写
- set var=2008-11-20
- echo %var%
- set str=一 二 三 四 五 六 七 八 九
- for /f "tokens=1-3 delims=-" %%a in ("%var%") do (
- set /a y=%%a,d=%%b,m=%%c
- )
- set y=%y:0=零%
- if %d% geq 10 set d=%d:~0,1%十%d:~-1%
- if %m% geq 10 set m=%m:~0,1%十%m:~-1%
- set var=%y%年%d%月%m%日
- for %%i in (%str%) do (
- set /a num+=1
- call set var=%%var:!num!=%%i%%
- )
- set var=%var:0=%
- echo %var%
- pause
复制代码
作者: youxi01 时间: 2008-1-10 07:45
你日期这里的分割符怎么只有
delims=-了呢?
其它的呢?delims=-\. 呢?
作者: 随风 时间: 2008-1-10 13:20
原帖由 youxi01 于 2008-1-10 07:45 发表
你日期这里的分割符怎么只有
delims=-了呢?
其它的呢?delims=-\. 呢?
这倒不是问题,关键是感觉替换过程,不够简洁,重复的太多,看谁能简化一下,或是出更好的代码.
期待....
作者: foxJL 时间: 2008-1-10 23:38
简化谈不上,照你的改了一点点.期待更好的代码- @echo off&setlocal enabledelayedexpansion
- :: 把日期转换成大写
- set str=零一二三四五六七八九
- for /f "tokens=1-3 delims=-" %%a in ("%date:~0,-4%") do (
- set /a y=%%a,d=%%b,m=%%c)
- for %%i in (d,m) do (if !%%i! geq 10 set %%i=!%%i:~0,1!十!%%i:~-1!
- set %%i=!%%i:0=!
- )
- set var=%y%年%d%月%m%日
- for /l %%i in (0,1,9) do (call set var=%%var:%%i=!str:~%%i,1!%%)
- echo %var%
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |