中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 20:23
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [分享][原创]发一个计算时间的
可打印版本  1,808 / 10
第1楼 scriptor 发表于 2007-09-16 15:03
银牌会员 发帖 555 积分 1,187
[分享][原创]发一个计算时间的
基本没有什么算法可言
纯粹代数
也是弥补
http://www.cn-dos.net/forum/viewthread.php?tid=33561&fpage=3
那个帖子的不足


第2楼 lookjcq 发表于 2007-09-16 17:12
新手上路 发帖 2 积分 4
?
第3楼 danlanse8025 发表于 2007-09-17 02:16
新手上路 发帖 5 积分 9
很不错.
第4楼 uiopuiop 发表于 2007-10-05 12:35
中级用户 发帖 211 积分 400
小弟愚笨,如何输入以秒为单位的数字,输出只要精确到秒就可以了。并且代码在一个批处理里。

[ Last edited by uiopuiop on 2007-10-5 at 12:52 PM ]
第5楼 uiopuiop 发表于 2007-10-05 12:57
中级用户 发帖 211 积分 400
call :clc !h! 什么意思?
第6楼 knoppix7 发表于 2007-10-05 13:26
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
自己看call /?
和setlocal /?
第7楼 Nickey 发表于 2007-10-05 16:31
初级用户 发帖 59 积分 132 来自 GuangZhou
@echo off
setlocal enabledelayedexpansion
set /p Input=输入秒:
if %Input% GTR 0 set /a Y=%Input%/31536000&set /a D=(Input%%31536000)/86400&set /a H=(Input%%86400)/3600&set /a M=(Input%%3600)/60&set /a S=Input%%60
echo 折合: %Y% 年 %D% 日 %H% 时 %M% 分 %S% 秒.
pause>nul

超过年份将会溢出
第8楼 uiopuiop 发表于 2007-10-06 21:44
中级用户 发帖 211 积分 400
多谢!
@echo off
setlocal enabledelayedexpansion
set /p Input=输入秒:
if %Input% GTR 0 set /a Y=%Input%/604800&set /a D=(Input%%604800)/86400&set /a H=(Input%%86400)/3600&set /a M=

(Input%%3600)/60&set /a S=Input%%60
echo 折合: %Y% 周 %D% 日 %H% 时 %M% 分 %S% 秒.
pause>nul

[ Last edited by uiopuiop on 2007-10-6 at 11:29 PM ]
第9楼 gne 发表于 2007-12-31 20:15
初级用户 发帖 45 积分 77
不好使啊
第10楼 knoppix7 发表于 2007-12-31 21:20
银牌会员 发帖 634 积分 1,287 来自 cmd.exe
:: Func: Returns a calendar date and time of day from the number of
:: elapsed seconds since 1st January 1970 00:00:00. For
:: NT4/2000/XP/2003.
::
:: Args: %1 seconds used to create calendar date and time of day
:: %2 var to receive year, 4 digits for all typical dates
:: %3 var to receive month, 2 digits, 01 to 12
:: %4 var to receive day of month, 2 digits, 01 to 31
:: %5 var to receive hours, 2 digits, 00 to 23
:: %6 var to receive minutes, 2 digits, 00 to 59
:: %7 var to receive seconds, 2 digits, 00 to 59
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
set /a i=%1,ss=i%%60,i/=60,nn=i%%60,i/=60,hh=i%%24,dd=i/24,i/=24
set /a a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
(if %hh% LSS 10 set hh=0%hh%)&(if %nn% LSS 10 set nn=0%nn%)
if %ss% LSS 10 set ss=0%ss%
endlocal&set %7=%ss%&set %6=%nn%&set %5=%hh%&^
set %4=%dd%&set %3=%mm%&set %2=%yy%&goto :EOF
第11楼 plp626 发表于 2008-03-03 21:44
银牌会员 发帖 1,020 积分 2,278
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023