中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 如何判断处于哪个时间段? 上一主题 | 下一主题
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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 楼』:  



  Quote:
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
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: