找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 30053|回复: 4

[其他] 批处理将当前数字日期转为中文小写数字日期

[复制链接]
发表于 2008-1-9 23:33:26 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2017-6-22 17:54 编辑

比如:2008-1-9
转为:二零零八年一月九日
发表于 2008-1-10 00:44:27 | 显示全部楼层
:
  1. @echo off&setlocal enabledelayedexpansion
  2. :: 把日期转换成大写
  3. set var=2008-11-20
  4. echo %var%
  5. set str=一 二 三 四 五 六 七 八 九
  6. for /f "tokens=1-3 delims=-" %%a in ("%var%") do (
  7.   set /a y=%%a,d=%%b,m=%%c
  8. )
  9. set y=%y:0=零%
  10. if %d% geq 10 set d=%d:~0,1%十%d:~-1%
  11. if %m% geq 10 set m=%m:~0,1%十%m:~-1%
  12. set var=%y%年%d%月%m%日
  13. for %%i in (%str%) do (
  14.   set /a num+=1
  15.   call set var=%%var:!num!=%%i%%
  16. )
  17. set var=%var:0=%
  18. echo %var%
  19. pause
复制代码

评分

参与人数 1PB +5 收起 理由
foxJL + 5

查看全部评分

 楼主| 发表于 2008-1-10 07:45:55 | 显示全部楼层
你日期这里的分割符怎么只有
delims=-了呢?
其它的呢?delims=-\. 呢?
发表于 2008-1-10 13:20:51 | 显示全部楼层
原帖由 youxi01 于 2008-1-10 07:45 发表
你日期这里的分割符怎么只有
delims=-了呢?
其它的呢?delims=-\. 呢?


这倒不是问题,关键是感觉替换过程,不够简洁,重复的太多,看谁能简化一下,或是出更好的代码.

期待....
发表于 2008-1-10 23:38:33 | 显示全部楼层
简化谈不上,照你的改了一点点.期待更好的代码
  1. @echo off&setlocal enabledelayedexpansion
  2. :: 把日期转换成大写
  3. set str=零一二三四五六七八九
  4. for /f "tokens=1-3 delims=-" %%a in ("%date:~0,-4%") do (
  5.   set /a y=%%a,d=%%b,m=%%c)
  6. for %%i in (d,m) do (if !%%i! geq 10 set %%i=!%%i:~0,1!十!%%i:~-1!
  7. set %%i=!%%i:0=!
  8. )
  9. set var=%y%年%d%月%m%日
  10. for /l %%i in (0,1,9) do (call set var=%%var:%%i=!str:~%%i,1!%%)
  11. echo %var%
  12. pause
复制代码

评分

参与人数 1PB +5 收起 理由
随风 + 5 不错

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 00:02 , Processed in 0.020003 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表