中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 出题,来试下 上一主题 | 下一主题
bluewaterx
初级用户





积分 132
发帖 68
注册 2008-7-29
状态 离线
『楼 主』:  出题,来试下

中国股市开盘时间从早9:30~11:30,下午从13:00~15:00

目标,随便输入个开盘中的时间(hh:mm),完成输入时间相加8 13 21 34 55 89 144后所得的时间,并把超过收盘的时间自动定位到下一个开盘时间.

例如,输入14:20后,正确所得如下:
推算数列:       8         13        21        34       55       89       144

时间周期:       14:28   14:33   14:41   14:54   9:45    10:19   11:14

我花了3个半小时的时间做出来的,有能力的可以试下

---------------------------------------------------------------------------------
中国股市开盘时间:上午9:30~11:30 下午13:00~15:00

输入预推算时间周期[24小时制,如9:35]:  14:20
输入的时间为:14:20

推算数列:       8          13       21        34       55       89       144

时间周期:       14:28   14:33   14:41   14:54   9:45    10:19   11:14
@echo off
mode con cols=78 lines=10
setlocal enabledelayedexpansion
title 时间周期推算工具
:lpStart
        set D=8        13        21        34        55        89        144
::s为输入时间 hh为小时 mm为分 n为总分钟数
        cls&set s= && set str=
        echo 中国股市开盘时间:上午9:30~11:30        下午13:00~15:00&echo.
        set /p s=输入预推算时间周期[24小时制,如9:35]:  
        for /f "tokens=1,2 delims=:" %%i in ('echo !s!') do set hh=%%i &set mm=%%j
        set /a n=!hh! * 60 + !mm!
::判断下输入的时间是否为开盘时有效时间,不是则重定向
        if !mm! geq 60 goto lpStart
        if not defined hh goto lpStart
        if not defined mm goto lpStart
        if !n! geq 690 if !n! lss 780 echo.&echo 此时为中午休市时间 & pause>nul & goto lpStart
        if !n! gtr 900 echo.&echo 此时为收盘休市时间 & pause>nul & goto lpStart
        if !n! lss 570 echo.&echo 此时为开盘前休市时间 & pause>nul & goto lpStart

        echo 输入的时间为:!s!&echo.
        echo 推算数列:        !D!
::将时间相加处理后得到总分数ZT
        for %%i in (!D!) do (
                set /a ZT=!n! + %%i
                rem 此时为上午开盘时间
                if !ZT! geq 570 if !ZT! leq 690 call :subTimeTurn !ZT!
                rem 此时为下午开盘时间
                if !ZT! geq 780 if !ZT! leq 900 call :subTimeTurn !ZT!
                rem 此时为中午休市时间
                if !ZT! geq 690 if !ZT! leq 780 set /a ZT+=90 && call :subTimeTurn !ZT!
                rem 此时为收盘休市时间
                if !ZT! gtr 900 set /a ZT-=330 && call :subTimeTurn !ZT!
        )
        echo.&echo 时间周期:!str!
pause>nul&goto lpStart
:subTimeTurn
        set x=
        set y=
        set /a x=%1 / 60
        set /a y=%1 - !x! * 60 -1
        set  str=!str!        !x!:!y!
        goto :eof
[ Last edited by bluewaterx on 2010-11-26 at 19:03 ]

2010-11-23 21:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bluewaterx
初级用户





积分 132
发帖 68
注册 2008-7-29
状态 离线
『第 2 楼』:  

中国股市开盘时间:上午9:30~11:30 下午13:00~15:00

输入预推算时间周期[24小时制,如9:35]:  10:12
输入的时间为:10:12

推算数列:       8         13        21        34       55       89       144

时间周期:       10:20   10:25   10:33   10:46   11:7    13:11   14:6

2010-11-23 21:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: