zoukankan      html  css  js  c++  java
  • js日历

      1 /**
      2  * @author qiaoYang
      3  * @time 2012.8.10
      4  */
      5 
      6 var day = new Date();
      7 //申明一个数组存储每个月的天数
      8 var monthOfDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
      9 //存储星期的数组
     10 var weeksArray = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
     11 //存储月份的数组
     12 var monthss = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
     13 
     14 /**
     15  * @func
     16  */
     17 function loadFunction(func){
     18     var oldOnLoad = window.onload;
     19     if(typeof window.onload != "function"){
     20         window.onload = func;
     21     }else{
     22         window.onload = function(){
     23             oldOnLoad();
     24             func();
     25         };
     26     }
     27 }
     28 
     29 /**
     30  * 判断年份是否为闰年
     31  * @param year 
     32  * @returns {Number}
     33  */
     34 
     35 function isLeap(year){
     36     if((year%4 ==0) || (year%100 == 0 && year%400 ==0))
     37         return 1;
     38     else
     39         return 0;
     40 }
     41 
     42 /**
     43  * 计算每个月的第一天是星期几的函数
     44  * @param year
     45  * @param month
     46  * @returns
     47  */
     48 function calFirstOfMonth(year, month){
     49     var day = new Date(year,month,1);
     50     return day.getDay();
     51 }
     52 
     53 /**
     54  * 计算需要的表格的行数
     55  * @param year 表示的年份
     56  * @param months 表示的月份
     57  * @param blanks 表示1号与星期几对齐
     58  * @returns
     59  */
     60 function calRows(year, months, blanks){
     61     if(isLeap(year) && months == 1){
     62         monthOfDays[1] = 29;
     63     }
     64     return Math.ceil((monthOfDays[months]+blanks)/7);
     65 }
     66 
     67 
     68 /**
     69  * 设置选择以后的年份
     70  * @param year
     71  */
     72 function setYear(year){
     73     alert("hello");
     74     if(year)
     75         day.setFullYear(year);
     76 }
     77 
     78 /**
     79  * 设置选择以后的月份
     80  * @param month
     81  */
     82 function setMon(month){
     83     if(month)
     84         day.setMonth(month);
     85 }
     86 
     87 /**
     88  * 程序初始化
     89  */
     90 function init(){
     91     var today = day;
     92     document.write("<form name='cal'><table bgcolor='f8f8f8' border='1'><tr>");
     93     document.write("<td colspan='7' bgcolor='#f8f8f8' >");
     94     document.write("<select name='years' onchange='setYear(2011)' style=' 190px'>");
     95     for(var i = 1950; i<2500; i++)
     96         if(i != today.getFullYear())
     97             document.write("<option value=" + i +">"+i);
     98         else
     99             document.write("<option value=" + i +" selected='true'>"+i);
    100     document.write("</select>");
    101     document.write("<select name='months' style=' 200px'>");
    102     for(var i = 1; i<13; i++)
    103         if(i != today.getMonth()+1)
    104             document.write("<option value=" + i +">"+monthss[i-1]);
    105         else
    106             document.write("<option value=" + i +" selected='true'>"+monthss[i-1]);
    107     document.write("</select>");
    108     document.write("</td></tr><tr>");
    109     for(var i = 0; i < weeksArray.length; i++){
    110         document.write("<td width='40' align='center'>" + weeksArray[i] + "</td>");
    111     }
    112     document.write("</tr>");
    113     //计算空格数
    114     var blankNumber = calFirstOfMonth(today.getFullYear(), today.getMonth());
    115     //计算所需行数
    116     var rowsNumber = calRows(today.getFullYear(), today.getMonth(), blankNumber);
    117     for(var i = 0; i<rowsNumber; i++){
    118         document.write("<tr>");
    119         for(var j = 0; j < 7; j++){
    120             if((i == 0 && j < blankNumber) || ((i*7+j-blankNumber+1) > monthOfDays[today.getMonth()] )){
    121                 document.write("<td width='40'>&nbsp;</td>");
    122             }else{
    123                 document.write("<td width='40' align='center'>" +(i*7+j-blankNumber+1) + "</td>" );
    124             }
    125         }
    126     }
    127     document.write("</tr></table></form>");
    128 }
    129 
    130 loadFunction(init);
  • 相关阅读:
    0xc000000f: Error attempting to read the boot configuration data
    结合使用 Oracle Database 11g 和 Python
    精通 Oracle+Python,第 9 部分:Jython 和 IronPython — 在 Python 中使用 JDBC 和 ODP.NET
    精通 Oracle+Python,第 8 部分:适合 Oracle DBA 使用的 Python
    精通 Oracle+Python,第 6 部分:Python 支持 XML
    精通 Oracle+Python,第 7 部分:面向服务的 Python 架构
    精通 Oracle+Python,第 5 部分:存储过程、Python 编程
    精通 Oracle+Python,第 4 部分:事务和大型对象
    精通 Oracle+Python,第 3 部分:数据解析
    精通 Oracle+Python,第 2 部分:处理时间和日期
  • 原文地址:https://www.cnblogs.com/binger/p/javascript_calendar.html
Copyright © 2011-2022 走看看