zoukankan      html  css  js  c++  java
  • js写的闹钟,支持多个闹钟

    因为玩一个游戏,该游戏可以支持多个号,每个号有好多等时间的任务。

    来回切换看,太耽误时间。手机的闹钟操作太麻烦。

    所以写了一个使用配置文件的闹钟,简单方便。

    var ForReading = 1, ForWriting = 2;
    var configPath = "./ta.txt";
    
    function getTs(){
    	return Math.floor((new Date()).getTime()/1000);
    }
    function GetEverything()
    {
        try{
            var fso, f;
            fso = new ActiveXObject("Scripting.FileSystemObject");
            f = fso.OpenTextFile(configPath, ForReading);
    		var r = f.ReadAll();
    		f.close();
            return r;
        }catch(e){
        	return '';
        }
    }
    function msgbox(msg){
    	var WshShell = WScript.CreateObject("WScript.Shell");
    	var BtnCode = WshShell.Popup(msg, 180, "== 小闹钟 ==", 4 + 1 + 64);
    	//WScript.Echo(msg);
    	return BtnCode;
    }
    function help(msg){
    	var WshShell = WScript.CreateObject("WScript.Shell");
    	WshShell.Popup(msg+"-----------
    ++举例,在"+configPath+"中写入:
    11 12 准备吃饭
    表示在11点12分显示“准备吃饭”的闹钟
    支持#开头注释掉一个闹钟
    支持“+m n”的格式表示设置一个闹钟在m小时n分之后;会自动修改闹钟文件,所以下次修改需要重新打开ta.txt
    支持每n分钟出提示:m35 起来休息一会儿吧——每35分钟显示一次“起来休息一会儿吧”", 60, "== 小闹钟 ==", 48);
    }
    while(true){
    	//try{
    		var txt = GetEverything();
    		if(txt){
    			var date = new Date();
    			var h = date.getHours();
    			var m = date.getMinutes();
    			var arr = txt.split("
    ");
    			var msg = '';
    			var wflag = false;
    			var warr = [];
    			for(var i=0;i<arr.length;i++){
    				if(arr[i].substr(0,1)=='#'){
    					warr.push(arr[i]);
    					continue;
    				}
    				if(arr[i].substr(0,1)=='m'){
    					var tmp = arr[i].split(' ');
    					if(tmp.length<2){
    						msg = '重复闹钟'+(i+1)+',配置错误。
    格式:mn s,如:“m35 三十五分钟”,表示每35分钟显示一次:三十五分钟
    ';
    						f = true;
    						continue;
    					}
    					
    					var _m = parseInt(tmp[0].substr(1),10);
    					var ts = getTs();
    					var _s = tmp[1];
    					
    					if(tmp.length<3 arr="" i="" tmp="" 0="" _s="" ts="" wflag="true;" else="" var="" lts="parseInt(tmp[2],10);" if="" ts-lts="" 60="">_m){
    							arr[i] = tmp[0]+" "+_s+" "+ts;
    							wflag = true;
    							var r = msgbox(_s);
    							while(r==4){
    								WScript.Sleep(60000);
    								r = msgbox("重复提醒:
    "+_s);
    							}
    						}
    					}
    					warr.push(arr[i]);
    					continue;
    				}
    				if(arr[i].substr(0,1)=='+'){
    					var tmp = arr[i].split(' ');
    					var _h = parseInt(tmp[0].substr(1),10);
    					var _m = parseInt(tmp[1],10);
    					var __h = h+_h;
    					var __m = m+_m;
    					if(__m>59){
    						__h = __h+Math.floor(__m/60);
    						__m = __m%60;
    					}
    					if(__h>23){
    						__h = __h%24;
    					}
    					arr[i] = __h+" "+__m+(tmp.length>2?(" "+tmp[2]):"");
    					wflag = true;
    				}
    				var tmp = arr[i].split(' ');
    				
    				if(tmp.length>2){
    					var _h = parseInt(tmp[0],10);
    					var _m = parseInt(tmp[1],10);
    					var _t = tmp.length>2?tmp[2]:('闹钟('+(i+1)+')');
    					var f = false;
    					if(isNaN(_h)||_h<0 _h="">24){
    						msg = '闹钟'+(i+1)+',小时错误
    ';
    						f = true;
    					}
    					if(isNaN(_m)||_m<0 _m="">59){
    						msg = '闹钟'+(i+1)+',分错误
    ';
    						f = true;
    					}
    					if(!f && h==_h && m==_m){
    						msg += _t+"
    ";
    					}else if(f){					
    						help(msg);
    						msg = '';
    					}
    					warr.push(arr[i]);
    				}
    			}
    			if(msg){
    				var r = msgbox(msg);
    				while(r==4){
    					WScript.Sleep(60000);
    					r = msgbox("重复提醒:
    "+msg);
    				}
    			}
    			if(wflag){
    				var fso = new ActiveXObject("Scripting.FileSystemObject");
    				f = fso.OpenTextFile(configPath, ForWriting, true);
    				var txt = warr.join("
    ");
    				f.Write(txt);
    				f.Close();
    			}
    	
    		}//else WScript.Echo('无闹钟
    ');
    	/*}catch(e){
    		help("出错了:"+e+";请检查闹钟配置。
    ");
    	}*/
    	WScript.Sleep(60000);
    }pre>
    <p>
    	 
    </p>
    <p>
    	配置文件为c:	a.txt。乱写一行,然后运行,会看到帮助提示
    </p>
    <p>
    	使用方法:wscript 闹钟.js。
    </p>
    <p>
    	 
    </p>
    <p>
    	<br />
    	 
    </p></0></0></3>
  • 相关阅读:
    topcoder srm 320 div1
    topcoder srm 325 div1
    topcoder srm 330 div1
    topcoder srm 335 div1
    topcoder srm 340 div1
    topcoder srm 300 div1
    topcoder srm 305 div1
    topcoder srm 310 div1
    topcoder srm 315 div1
    如何统计iOS产品不同渠道的下载量?
  • 原文地址:https://www.cnblogs.com/lein317/p/5067513.html
Copyright © 2011-2022 走看看