Board logo

标题: 关于时间的疑问 [打印本页]

作者: ybbao     时间: 2010-8-22 11:31    标题: 关于时间的疑问

@echo off
if %time% gtr 23:00:00.00 if %time% lss 23:59:59.00 echo 5
if %time% gtr 0:00:00.00 if %time% lss 8:00:00.00 echo 6
pause

第一句:if %time% gtr 23:00:00.00 if %time% lss 23:59:59.00 echo 5
可以正常运行

第二句:if %time% gtr 0:00:00.00 if %time% lss 8:00:00.00 echo 6
如果时间在0点~8点无问题
但当时间更改10点~23点就会出问题,都一样执行

如果更改:if %time% gtr 00:00:00.00 if %time% lss 08:00:00.00 echo 6
反而在0点~8点时间段出问题

请教:正确应该如何修改才防止出问题呢?
作者: doshsyy     时间: 2010-8-22 13:48
主要原因是由于0~9点之间小时显示前面的0的省略造成的,使得十进制时间进位后进行字符串比较时用一个的十位与另一个的个位比(如23比8点成了2比8,应该是23比08的)(强烈建议Microsoft,不要省略0~9点小时表示前面的0,分钟就没省略,所以分钟是不会错的),还有你将时间变为if %time% gtr 00:00:00.00 if %time% lss 08:00:00.00 echo 6就更加不对了,自己想想看,因为这个条件是不可能满足的,呵呵!
作者: ybbao     时间: 2010-8-22 14:34


  Quote:
Originally posted by doshsyy at 2010-8-22 13:48:
主要原因是由于0~9点之间小时显示前面的0的省略造成的,使得十进制时间进位后进行字符串比较时用一个的十位与另一个的个位比(如23比8点成 ...

的确

现在重新取了小时的数,这样还可以对比,以为又办法避免这个问题呢
作者: doshsyy     时间: 2010-8-22 16:07
嗯,这样可以避免啊,只取数值的话,if会进行数值大小对比,而不会进行字符串对比。例如,8<23而8:>23:(8>2),你将小时数单独分开进行判断的话可以避免误判的。所以我不知道你为什么要加“以为”?
作者: doshsyy     时间: 2010-8-22 16:27
这个可以提取当前时间的小时数,分钟数,秒数。
for /F "tokens=1,2,3delims=:" %%i in ("%time%") do echo %%i %%j %%k

作者: ybbao     时间: 2010-8-23 11:40


  Quote:
Originally posted by doshsyy at 2010-8-22 16:27:
这个可以提取当前时间的小时数,分钟数,秒数。
for /F "tokens=1,2,3delims=:" %%i in ("%time%") do echo %%i %%j %%k

感谢,这样也可以,已用%time:0,2%解决
作者: mxzenf     时间: 2010-8-26 19:54
学到了。
<table cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="width:290px;border: 1px solid #E6E6E6;"><tr><td rowspan="2" align="center"><div style="margin:5px auto; width: 80px;height:80px;"><a target="_blank" href="http://s.click.taobao.com/t_1?i=rpJab2vlYpiknA%3D%3D&p=mm_17955000_0_0&n=12" style="width: 80px; margin:0px;padding:0px;height: 80px; overflow:hidden;"><img style="margin:0px;border:none;" src="http://image.taobao.com/bao/uploaded/http://img03.taobaocdn.com/bao/uploaded/i3/T1.DdIXfpDXXbPi7M8_071350.jpg_sum.jpg"></a></div><div class="clearing"></div></td><td colspan="2" ><a target="_blank" href="http://s.click.taobao.com/t_1?i=rpJab2vlYpiknA%3D%3D&p=mm_17955000_0_0&n=12"  style="height:40px;width:180px;margin:5px;line-height:20px;color:#0000FF">中悦科技促销空间1G虚拟主机促销1G空间送100M数据库MYSQL/MYSQL2</a></td></tr><tr><td nowrap="nowrap" > <span style="font-weight:600;margin:5px;line-height:30px;color:#CC0000;">100.0元</span> </td><td nowrap="nowrap" width="100px" ><a target="_blank"href="http://s.click.taobao.com/t_1?i=rpJab2vlYpiknA%3D%3D&p=mm_17955000_0_0&n=12"><img name="" style="margin:0px; pandding:0px;line-height:24px;vertical-align: text-bottom;border:none;"  src="http://img.alimama.cn/images/tbk/cps/fgetccode_btn.gif"></a></td></tr></table>
作者: mxzenf     时间: 2010-8-26 19:58
学到了。。




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5