中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 15:18
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理 将秒转换成日时分秒
可打印版本  5,264 / 24
第1楼 PPdos 发表于 2007-01-16 22:15
高级用户 发帖 268 积分 783
批处理 将秒转换成日时分秒
一道C语言题 请用批处理做 例如:

输入(秒):3662

显示: 0天 1 小时 1分钟 2秒
第2楼 namejm 发表于 2007-01-16 23:28
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  以下演示代码没有做错误检测,请测试:

  精简一下代码。

[ Last edited by namejm on 2007-1-16 at 12:17 PM ]
第3楼 zh159 发表于 2007-01-16 23:40
金牌会员 发帖 1,467 积分 3,687
第4楼 namejm 发表于 2007-01-16 23:48
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  呵呵,zh159 兄的思路更直接啊,我复杂化了。
第5楼 redtek 发表于 2007-01-16 23:50
金牌会员 发帖 1,147 积分 2,902
精彩!!!顶~~
第6楼 scriptor 发表于 2007-01-17 00:02
银牌会员 发帖 555 积分 1,187
一个简单的数学问题啊
呵呵

程序就也要简单
第7楼 scriptor 发表于 2007-01-17 00:08
银牌会员 发帖 555 积分 1,187
如果输入的是
xxxxx.34

还要考虑毫秒

那么2楼和3楼的代码就是不能执行的

[ Last edited by scriptor on 2007-1-16 at 11:09 AM ]
第8楼 namejm 发表于 2007-01-17 00:56
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  3楼的代码计算天数的时候,再除以60来取余数会出问题的,应该去掉 %%60 。
第9楼 zh159 发表于 2007-01-17 02:28
金牌会员 发帖 1,467 积分 3,687
当时随手写了,修正:


带毫秒的:
PS:毫秒是1000进1秒


[ Last edited by zh159 on 2007-1-16 at 09:42 PM ]
第10楼 hxuan999 发表于 2007-01-17 02:37
中级用户 发帖 161 积分 337
处理毫秒的时候有问题呀.比如输入5485.3,那.3应该是300毫秒吧,而不是3毫秒呀.
第11楼 zh159 发表于 2007-01-17 02:46
金牌会员 发帖 1,467 积分 3,687
Originally posted by hxuan999 at 2007-1-16 13:37:
处理毫秒的时候有问题呀.比如输入5485.3,那.3应该是300毫秒吧,而不是3毫秒呀.

忘了-_-|||
谢谢提醒,已修正,不过还不能处理4位小数以上的

[ Last edited by zh159 on 2007-1-16 at 01:48 PM ]
第12楼 hxuan999 发表于 2007-01-17 02:54
中级用户 发帖 161 积分 337
我也来一个,带毫秒的(超过四位小数的被截取到000.00毫秒):


  1. @echo off&setlocal enabledelayedexpansion
  2. :begin
  3. cls
  4. echo;
  5. set input=
  6. set /p input= 请输入秒数(退出请直接按回车 )
  7. if not defined input exit
  8. for /f "tokens=1* delims=." %%a in ("%input%") do set input=%%a & set D5=%%b00000
  9. for /l %%i in (4,-1,2) do set /a "D%%i=!input!%%60" && set /a "input=!input!/60"
  10. set "D5=!D5:~0,3!.!D5:~3,2!"
  11. set /a "D1=!input!%%24"
  12. echo;&echo; %D1%%D2% 小时 %D3%%D4%%D5% 毫秒&echo;
  13. pause
  14. goto begin
hxuan: 2007-01-17 12:52


此程序已经修正.

[ Last edited by hxuan999 on 2007-1-17 at 01:59 PM ]
第13楼 namejm 发表于 2007-01-17 04:15
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  12楼的代码有如下缺陷:

  1、截取小数部分用替换语句是容易出错的,比如:整数部分是小数部分的某一个字符串的时候,如 23.1234。建议不要使用如此另类的语句,还是用 for 语句中的 delims=. 来提取吧;

  2、计算天数的时候,仍然除了60,这是不正确的。
第14楼 tao0610 发表于 2007-01-17 07:22
高级用户 发帖 218 积分 579


..
第15楼 PPdos 发表于 2007-01-17 09:39
高级用户 发帖 268 积分 783
各位厉害。。竟然连毫秒都准确到了 。。看来可以修改成春节倒计时了^^
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023