中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
作者:
标题: 如何判断处于哪个时间段? 上一主题 | 下一主题
pykacha
初级用户





积分 156
发帖 73
注册 2008-5-9
状态 离线
『楼 主』:  如何判断处于哪个时间段?

我想实现下面功能 如果当前时间处于上午8:45到9:10之间,则设置wt为“早”,如果是9:10到10:00之间,则设置wt为“迟”。 请问要如何编写?




为自己是中国人而倍感骄傲
2008-5-13 09:51
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 2 楼』:  

if/? if %time%大于 8:45 if %time% 小于 9:10 (set wt=早) else set wt 迟




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-13 10:23
查看资料  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 3 楼』:  

@echo off
set wt=
if "%time:~0,5%" geq " 8:45" (
  if "%time:~0,5%" lss " 9:10" (
    set wt=早
  ) else if "%time:~0,5%" geq " 9:10" (
    if "%time:~0,5%" lss "10:00" (
      set wt=迟
    )
  )
)
echo %wt%


2008-5-13 11:01
查看资料  发短消息  网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 4 楼』:  

8:45这样的结构能够用于if的判断大小吗??


2008-5-13 11:52
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

Originally posted by huahua0919 at 2008-5-13 11:52 AM: 8:45这样的结构能够用于if的判断大小吗??
你能给出一个不能的例子吗??


2008-5-13 12:01
查看资料  发短消息  网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 6 楼』:  

执行你的程序说 echo 处于关闭状态


2008-5-13 12:05
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  

Originally posted by huahua0919 at 2008-5-13 12:05 PM: 执行你的程序说 echo 处于关闭状态
正常吧,仔细看看楼主的要求,对于不在那个两个时间段的情况没做要求。


2008-5-13 12:41
查看资料  发短消息  网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 8 楼』:  

@echo off
set t=%time:~0,5%
for /f "tokens=1,2 delims=:." %%a in ("%t%") do (
   set /a s=100%%a%%100*60,f=100%%b%%100+s
)
set /a w=1/(f/525),1/(550/f)2>nul&&set var=早
set /a w=1/(f/551),1/(600/f)2>nul&&set var=迟
if defined var (echo %t% %var%) else echo %t% 不在指定时间段。
pause
[ Last edited by 26933062 on 2008-5-13 at 01:20 PM ]




致精致简!
2008-5-13 13:19
查看资料  发短消息  网志   编辑帖子  回复  引用回复
pooronce
中级用户





积分 484
发帖 250
注册 2007-6-5
状态 离线
『第 9 楼』:  

if %time:~0,2%%time:~3,2% geq 845 (
	if %time:~0,2%%time:~3,2% leq 910 (
		set "wt=早"
		) else if %time:~0,2%%time:~3,2% gtr 910 (
			if %time:~0,2%%time:~3,2% leq 1000 (
				set "wt=迟"
				) else (
					set "wt=太迟"
					)
			)
	) else set "wt=太早"

echo %wt%


2008-5-13 13:26
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
joyn
中级用户

丶杏灬丶


积分 280
发帖 105
注册 2008-5-6
来自 广西
状态 离线
『第 10 楼』:  

@echo off&setlocal ENABLEDELAYEDEXPANSION set wt= if "!time:~0,5!" geq " 8:45" ( if "!time:~0,5!" lss " 9:10" ( set wt=早 ) else if "!time:~0,5!" geq " 9:10" ( if "!time:~0,5!" lss "10:10" ( set wt=迟 ) ) ) echo.!wt! "else set wt=不在时间段内"这一段可以避免提示"ECHO处于关闭状态"而直接提示现在不是所在条件时间段内~ [ Last edited by joyn on 2008-5-13 at 02:27 PM ]


2008-5-13 14:24
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 11 楼』:  

大家,想复杂了。 粘贴到命令行:
if %time% geq 08:45 if %time% lss 09:10 (echo 早) else if %time% geq 09:10 echo 迟




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-13 15:27
查看资料  发短消息  网志   编辑帖子  回复  引用回复
pooronce
中级用户





积分 484
发帖 250
注册 2007-6-5
状态 离线
『第 12 楼』:  

Originally posted by plp626 at 2008-5-13 03:27 PM: 大家,想复杂了。 粘贴到命令行:
if %time% geq 08:45 if %time% lss 09:10 (echo 早) else if %time% geq 09:10 echo 迟
%time%在10点前是不显示前置0的 另外你这个在时间段之外都是迟了好像


2008-5-13 15:53
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 13 楼』:  

RE:pooronce 和那个没关系, 当前时间大于9:10才显示迟,你把9:10改小些再测试测试。。。
if %time% geq 08:45 if %time% lss 09:10 echo 早
if %time% geq 09:10 echo 迟
[ Last edited by plp626 on 2008-5-13 at 04:37 PM ]




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-13 16:22
查看资料  发短消息  网志   编辑帖子  回复  引用回复
pykacha
初级用户





积分 156
发帖 73
注册 2008-5-9
状态 离线
『第 14 楼』:  

想不到短短时间内前辈们为我提供了那么多种方法,每种方法我都学习尝试了。 谢谢大家了!




为自己是中国人而倍感骄傲
2008-5-13 17:52
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
pooronce
中级用户





积分 484
发帖 250
注册 2007-6-5
状态 离线
『第 15 楼』:  

Originally posted by plp626 at 2008-5-13 04:22 PM: RE:pooronce 和那个没关系, 当前时间大于9:10才显示迟,你把9:10改小些再测试测试。。。 [code]if %time% geq 08:45 if %time% lss 09:10 echo 早 if ...
你上面那段代码,自己试过没? 我改成8点10分都是迟的 有关系的,带0的就是8进制了,甚至会命令出错不能比了。或者呢字符串比就是空格跟0比了,能一样么


2008-5-13 17:57
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: