timechoose.js
上传用户:rblchem
上传日期:2022-04-27
资源大小:1941k
文件大小:11k
源码类别:

编辑器/阅读器

开发平台:

C#

  1. //有效的时间范围 
  2. var date_start,date_end,g_object
  3. var today = new Date();
  4. var separator="-";
  5. var inover=false;
  6. //mode :时间变换的类型0-年 1-月 2-直接选择月
  7. function change_date(temp,mode)
  8. {
  9. var t_month,t_year
  10.     if (mode){
  11.         if(mode==1)
  12.         t_month=parseInt(cele_date_month.value,10)+parseInt(temp,10);
  13.         else
  14.         t_month=parseInt(temp)
  15.         if (t_month<cele_date_month.options(0).text) {
  16.             cele_date_month.value=cele_date_month.options(cele_date_month.length-1).text;
  17.             change_date(parseInt(cele_date_year.value,10)-1,0);
  18.             }
  19.         else{
  20.             if (t_month>cele_date_month.options(cele_date_month.length-1).text){
  21.                 cele_date_month.value=cele_date_month.options(0).text;
  22.                 change_date(parseInt(cele_date_year.value,10)+1,0);
  23.                 }            
  24.             else
  25.                 {cele_date_month.value=t_month;
  26.                  set_cele_date(cele_date_year.value,cele_date_month.value);                
  27.                 }
  28.         }
  29.     }  
  30.     else{
  31.         t_year=parseInt(temp,10);
  32.         
  33.         if (t_year<cele_date_year.options(0).text) {
  34.             cele_date_year.value=cele_date_year.options(0).text;
  35.             set_cele_date(cele_date_year.value,1);                
  36.             }
  37.         else{
  38.             if (parseInt(t_year,10)>parseInt(cele_date_year.options(cele_date_year.length-1).text,10)){
  39.                 cele_date_year.value=cele_date_year.options(cele_date_year.length-1).text;
  40.                 set_cele_date(cele_date_year.value,12);                
  41.                 }            
  42.             else
  43.                 {cele_date_year.value=t_year;
  44.                  set_cele_date(cele_date_year.value,cele_date_month.value);                
  45.                 }
  46.         }
  47.     }
  48.     /*********2002-02-01 MODIFY BY WING **************/
  49.     window.cele_date.focus();
  50.     /****************MODIFY END***********************/
  51. }
  52. //初始化日历
  53. function init(d_start,d_end)
  54. {
  55.      var temp_str;
  56.      var i=0
  57.      var j=0
  58.      date_start=new Date(2000,7,1)
  59.      date_end=new Date(2004,8,1)
  60.      
  61.      //必须要有内容(奇怪)
  62.      /*************************2002-02-01 MODIFY BY WING *********************************************************************************/
  63.      document.writeln("<div name="cele_date" id="cele_date"  style="display:none"    style="LEFT: 69px; POSITION: absolute; TOP: 159px;Z-INDEX:99" onClick="event.cancelBubble=true;" onBlur="hilayer()" onMouseout="lostlayerfocus()">&nbsp;</div>");
  64.      /*******************************************MODIFY END*******************************************************************************/
  65.      window.cele_date.innerHTML="";
  66.      temp_str="<table border="1" bgcolor="#4682b4" bordercolor="white"><tr><td colspan=7 onmouseover="overcolor(this)">";
  67.      temp_str+="<input type="Button" value="<<" onclick="change_date(-1,1)" onmouseover="getlayerfocus()" style="color: #FFFFFF; background-color: #5d7790; cursor: hand">&nbsp;";//左面的箭头
  68.      /**************************2002-02-01 MODIFY BY WING ********************************************************************************/
  69.      /*temp_str+="<input type="Button" value="<<" onclick="change_date(-1,1)" >?";//左面的箭头                                */
  70.      /************************************************************************************************************************************/
  71.      
  72.      temp_str+=""//年
  73.      temp_str+="<select name="cele_date_year" id="cele_date_year" language="javascript" onchange="change_date(this.value,0)" onmouseover="getlayerfocus()" onblur="getlayerfocus()" style="font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB">"
  74.      /**************************2002-02-01 MODIFY BY WING ********************************************************************************/
  75.      /*temp_str+="<select name="cele_date_year" id="cele_date_year" language="javascript" onchange="change_date(this.value,0)">" */
  76.      /************************************************************************************************************************************/
  77.      for (i=2000;i<=2020;i++)
  78.      {
  79.      temp_str+="<OPTION value=""+i.toString()+"">"+i.toString()+"</OPTION>";
  80.      }
  81.      temp_str+="</select>年";
  82.      temp_str+=""//月
  83.      temp_str+="<select name="cele_date_month" id="cele_date_month" language="javascript" onchange="change_date(this.value,2)" onmouseover="getlayerfocus()" onblur="getlayerfocus()" style="font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB">"
  84.      /**************************2002-02-01 MODIFY BY WING **********************************************************************************/
  85.      /*temp_str+="<select name="cele_date_month" id="cele_date_month" language="javascript" onchange="change_date(this.value,2)">" */
  86.      /**************************************************************************************************************************************/
  87.      for (i=1;i<=12;i++)
  88.      {
  89.      temp_str+="<OPTION value=""+i.toString()+"">"+i.toString()+"</OPTION>";
  90.      }
  91.      temp_str+="</select>月";
  92.      temp_str+=""//右箭头
  93.      temp_str+="<input type="Button" value=">>" onclick="change_date(1,1)" onmouseover="getlayerfocus()"  style="color: #FFFFFF; background-color: #5d7790; cursor: hand">";
  94.      /**************************2002-02-01 MODIFY BY WING ********************************************************************************/
  95.      /*temp_str+="<input type="Button" value=">>" onclick="change_date(1,1)">";                                                    */
  96.      /************************************************************************************************************************************/
  97.      temp_str+="</td></tr><tr><td onmouseover="overcolor(this)">"
  98.      temp_str+="<font color=red>Su</font></td><td>";temp_str+="Mo</td><td>"; temp_str+="Tu</td><td>"; temp_str+="We</td><td>"
  99.      temp_str+="Th</td><td>";temp_str+="Fr</td><td>"; temp_str+="Sa</td></tr>";
  100.      for (i=1 ;i<=6 ;i++)
  101.      {
  102.      temp_str+="<tr>";
  103.         for(j=1;j<=7;j++){
  104.             temp_str+="<td name="c"+i+"_"+j+""id="c"+i+"_"+j+"" style="CURSOR: hand" style="COLOR:#000000" language="javascript" onmouseover="overcolor(this)" onmouseout="outcolor(this)" onclick="td_click(this)">?</td>"
  105.             }
  106.      temp_str+="</tr>"        
  107.      }
  108.      temp_str+="</td></tr></table>";
  109.      window.cele_date.innerHTML=temp_str;
  110. }
  111. function set_cele_date(year,month)
  112. {
  113.    var i,j,p,k
  114.    var nd=new Date(year,month-1,1);
  115.    event.cancelBubble=true;
  116.    cele_date_year.value=year;
  117.    cele_date_month.value=month;   
  118.    k=nd.getDay()-1
  119.    var temp;
  120.    for (i=1;i<=6;i++)
  121.       for(j=1;j<=7;j++)
  122.       {
  123.       eval("c"+i+"_"+j+".innerHTML=""");
  124.       eval("c"+i+"_"+j+".bgColor="#4682b4"");
  125.       eval("c"+i+"_"+j+".style.cursor="hand"");
  126.       }
  127.    while(month-1==nd.getMonth())
  128.     { j=(nd.getDay() +1);
  129.       p=parseInt((nd.getDate()+k) / 7)+1;
  130.       eval("c"+p+"_"+j+".innerHTML="+"""+nd.getDate()+""");
  131.       if ((nd.getDate()==today.getDate())&&(cele_date_month.value==today.getMonth()+1)&&(cele_date_year.value==today.getYear())){
  132.         eval("c"+p+"_"+j+".bgColor="#EFFB64"");
  133.       }
  134.       if (nd>date_end || nd<date_start)
  135.       {
  136.       eval("c"+p+"_"+j+".bgColor="#FF9999"");
  137.       eval("c"+p+"_"+j+".style.cursor="text"");
  138.       }
  139.       nd=new Date(nd.valueOf() + 86400000)
  140.     }
  141. }
  142. //s_object:点击的对象;d_start-d_end有效的时间区段;需要存放值的控件;
  143. function show_cele_date(eP,d_start,d_end,t_object)
  144. {
  145. window.cele_date.style.display="";
  146. window.cele_date.style.zIndex=99
  147. var s,cur_d
  148. var eT = eP.offsetTop;  
  149. var eH = eP.offsetHeight+eT;  
  150. var dH = window.cele_date.style.pixelHeight;  
  151. var sT = document.body.scrollTop; 
  152. var sL = document.body.scrollLeft; 
  153. event.cancelBubble=true;
  154. window.cele_date.style.posLeft = event.clientX-event.offsetX+sL-5;  
  155. window.cele_date.style.posTop = event.clientY-event.offsetY+eH+sT-5;
  156. if (window.cele_date.style.posLeft+window.cele_date.clientWidth>document.body.clientWidth) window.cele_date.style.posLeft+=eP.offsetWidth-window.cele_date.clientWidth;
  157. //if (window.cele_date.style.posTop+window.cele_date.clientHeight>document.body.clientHeight) window.cele_date.style.posTop-=(eP.offsetHeight+window.cele_date.clientHeight+5);
  158. if (d_start!=""){
  159.     if (d_start=="today"){
  160.         date_start=new Date(today.getYear(),today.getMonth(),today.getDate());
  161.     }else{
  162.         s=d_start.split(separator);
  163.         date_start=new Date(s[0],s[1]-1,s[2]);
  164.     }
  165. }else{
  166.     date_start=new Date(1900,1,1);
  167. }
  168. if (d_end!=""){
  169.     s=d_end.split(separator);
  170.     date_end=new Date(s[0],s[1]-1,s[2]);
  171. }else{
  172.     date_end=new Date(3000,1,1);
  173. }
  174. g_object=t_object
  175. cur_d=new Date()
  176. set_cele_date(cur_d.getYear(),cur_d.getMonth()+1);
  177. window.cele_date.style.display="block";
  178. /***************2002-02-01 MODIFY BY WING ***********/
  179. window.cele_date.focus();
  180. /****************MODIFY END**************************/
  181. }
  182. function td_click(t_object)
  183. {
  184. var t_d
  185. if (parseInt(t_object.innerHTML,10)>=1 && parseInt(t_object.innerHTML,10)<=31 ) 
  186. { t_d=new Date(cele_date_year.value,cele_date_month.value-1,t_object.innerHTML)
  187. if (t_d<=date_end && t_d>=date_start)
  188. {
  189. var year = cele_date_year.value;
  190. var month = cele_date_month.value;
  191. var day = t_object.innerHTML;
  192. if (parseInt(month)<10) month = "0" + month;
  193. if (parseInt(day)<10) day = "0" + day;
  194. g_object.value=year+separator+month+separator+day;
  195. window.cele_date.style.display="none";};
  196. }
  197. }
  198. function h_cele_date()
  199. {
  200. window.cele_date.style.display="none";
  201. }
  202. function overcolor(obj)
  203. {
  204.   if (obj.style.cursor=="hand") obj.style.color = "#FFFFFF";
  205.   /*********** 2002-02-01 MODIFY BY WING *****/
  206.   inover=true;
  207.   window.cele_date.focus();
  208.   /************* MODIFY END ******************/
  209. }
  210. function outcolor(obj)
  211. {
  212.   obj.style.color = "#000000";
  213.   /*********** 2002-02-01 MODIFY BY WING *****/
  214.   inover=false;
  215.   /************* MODIFY END ******************/
  216. }
  217. function getNow(o){
  218.     var Stamp=new Date();
  219.     var year = Stamp.getYear();
  220.     var month = Stamp.getMonth()+1;
  221.     var day = Stamp.getDate();
  222.     if(month<10){
  223. month="0"+month;
  224.     }
  225.     if(day<10){
  226. day="0"+day;
  227.     }
  228.     o.value=year+separator+month+separator+day;
  229. }
  230. /*********** 2002-02-01 MODIFY BY WING **ADD THREE FUNCTION TO CONTROL THE DIV FOCUS***/
  231. function hilayer()
  232. {
  233. if (inover==false)
  234. {
  235. var lay=document.all.cele_date;
  236. lay.style.display="none";
  237. }
  238. }
  239. function getlayerfocus()
  240. {
  241. inover=true;
  242. }
  243. function lostlayerfocus()
  244. {
  245. inover=false;
  246. }
  247. /***************************MODIFY END************************************************/
  248. //-->
  249.          init();