• asp.net千奇百怪的日历


         

    日历控件是我们经常使用的,本文把常用的几款日历总结如下。 

    1.下拉日历梅花雨版第1款
    点评:
    最经典的几乎完美了。

    代码:

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>


    <html  >
    <head runat="server">
        
    <title>日历控件</title>
    <script type="text/javascript" src="calendar.js"></script>
    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
            
            
    <input id="Text1" type="text"  onFocus=calendar() />
           
    </div>
        
    </form>
    </body>
    </html>

     calendar.js

    calendar.js 注意存为带签名的utf-8

    梅花雨版第2款
    点评:
    比上一款大些,色彩淡一点。

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
    <html>
    <head runat="server">
        
    <title>日历控件</title>
        
    <script type="text/javascript" src="calendar.js"></script>

    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
        
    <input onfocus="setday(this);" name="Calendar1" type="text" id="Calendar1"  />
        
    </div>
        
    </form>
    </body>
    </html>

    calendar.js http://download1.csdn.net/down3/20070514/14080517354.js


     2.万年历
    点评:可以自定义节日,是很多系统里做装饰的

     

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>


    <html>
    <head runat="server">
        
    <title>日历控件</title>
    <script type="text/javascript" src="wnl.js"></script>
    <SCRIPT language=JavaScript>
    function click() 
    {
    if (event.button==2{alert('欢迎访问——农历与西历对照') }
    }

    document.onmousedown
    =click
    </SCRIPT>

    <STYLE>.todyaColor {
        BACKGROUND-COLOR
    : aqua
    }

    </STYLE>
    </head>
    <BODY leftMargin=5 topMargin=1 onload=initial()>
    <SCRIPT language=JavaScript><!--
       
    if(navigator.appName == "Netscape" || parseInt(navigator.appVersion) < 4)
       document.write(
    "<h1>你的浏览器无法执行此程序。</h1>此程序在 IE4 以后的版本才能执行!!")
    //--></SCRIPT>

    <DIV id=detail style="POSITION: absolute"></DIV>
    <CENTER>
    <FORM name=CLD>
    <TABLE>
      
    <TBODY>
      
    <TR>
        
    <TD align=middle>
          
    <DIV style="Z-INDEX: -1; POSITION: absolute; TOP: 30px"><FONT id=YMBG 
          style
    ="FONT-SIZE: 80pt; COLOR: #e0e0e0; FONT-FAMILY: 'Arial Black'"><BR>JUN</FONT> 
          
    </DIV>
          
    <TABLE border=0>
            
    <TBODY>
            
    <TR>
              
    <TD bgColor=#00ffff colSpan=7><FONT style="FONT-SIZE: 9pt" 
                color
    =#333333 size=2>西历 <SELECT style="FONT-SIZE: 9pt" 
                onchange
    =changeCld() name=SY> 
                  
    <SCRIPT language=JavaScript><!--
                
    for(i=1900;i<2050;i++) document.write('<option>'+i)
                
    //--></SCRIPT>
                </SELECT>年 <SELECT style="FONT-SIZE: 9pt" onchange=changeCld() 
                name
    =SM> 
                  
    <SCRIPT language=JavaScript><!--
                
    for(i=1;i<13;i++) document.write('<option>'+i)
                
    //--></SCRIPT>
                </SELECT>月 </FONT><FONT id=GZ face=宋体 color=#333333 
                size
    =4></FONT><BR></TD></TR>
            
    <TR align=middle bgColor=#e0e0e0>
              
    <TD width=54></TD>
              
    <TD width=54></TD>
              
    <TD width=54></TD>
              
    <TD width=50></TD>
              
    <TD width=54></TD>
              
    <TD width=54></TD>
              
    <TD width=54></TD></TR>
            
    <SCRIPT language=JavaScript><!--
                
    var gNum
                
    for(i=0;i<6;i++
                
    {
                   document.write(
    '<tr align=center>')
                   
    for(j=0;j<7;j++
                   
    {
                      gNum 
    = i*7+j
                      document.write(
    '<td id="GD' + gNum +'" onMouseOver="mOvr(' + gNum +')" onMouseOut="mOut()"><font id="SD' + gNum +'" size=5 face="Arial Black"')
                      
    if(j == 0) document.write(' color=red')
                      
    if(j == 6)
                        
    if(i%2==1) document.write(' color=red')
                        
    else document.write(' color=green')
                      document.write(
    ' TITLE=""> </font><br><font id="LD' + gNum + '" size=2 style="font-size:9pt"> </font></td>')
                   }

                   document.write(
    '</tr>')
                }

                
    //--></SCRIPT>
            </TBODY></TABLE></TD>
        
    <TD vAlign=top align=middle width=60><BR><BR><BR><BR><BUTTON 
          style
    ="FONT-SIZE: 9pt" onclick="pushBtm('YD')">年↑</BUTTON><BR><BUTTON 
          style
    ="FONT-SIZE: 9pt" onclick="pushBtm('YU')">年↓</BUTTON> 
          
    <P><BUTTON style="FONT-SIZE: 9pt" 
          onclick
    ="pushBtm('MD')">月↑</BUTTON><BR><BUTTON style="FONT-SIZE: 9pt" 
          onclick
    ="pushBtm('MU')">月↓</BUTTON> </P>
          
    <P><BUTTON style="FONT-SIZE: 9pt" onclick="pushBtm('')">当月</BUTTON> </P>
          
    <P><INPUT style="FONT-SIZE: 9pt" onclick="javascript: window.close()" type=button value=关闭> 
          
    </P></TD></TR></TBODY></TABLE></FORM></CENTER></BODY>
    </html>

     wnl.js http://download1.csdn.net/down3/20070514/14080418581.js

     3.Flash日历
    点评:可切换时钟日历2种状态,不过可惜不能选择,只能看而已,似乎作者没有写版权,好想其拉类似的都写个版权。

    日历状态:


    时间状态:

    clock.swf http://download1.csdn.net/down3/20070514/14083110727.swf


    4.仿Windows风格系统时间和日历
    点评:
    没有和textbox结合

    仿系统日历和时间钟.htm http://download1.csdn.net/down3/20070514/14085438917.htm

    5.仿Windows风格系统时间和日历
    点评:
    和textbox结合


    <HTML><HEAD><TITLE>http://blog.csdn.net/21aspnet/</TITLE>
    <META http-equiv=Content-Type content="text/html; charset=utf-8">
    <META content="MSHTML 6.00.3790.0" name=GENERATOR>
    <META content=C# name=CODE_LANGUAGE>
    <META content=JavaScript name=vs_defaultClientScript>
    <META content=http://schemas.microsoft.com/intellisense/ie5 
    name=vs_targetSchema>
    <script lanuage='javascript'>
            
    function Calendar(obj)
            
    {
                
    var showx = event.screenX - event.offsetX - 4 - 

    210 ; // + deltaX;
                var showy = event.screenY - event.offsetY + 18

    // + deltaY;
                var newWINwidth = 210 + 4 + 18;
                
                
        
                
    var retval = window.showModalDialog

    (
    'cal.htm',obj.value, 

    'dialogWidth:206px;dialogHeight:221px;dialogLeft:'+showx+'px; 

    dialogTop:
    '+showy+'px;status:0;help:0;scroll:0');
                
    if( retval != null )
                
    {
                    obj.value 
    = retval;
                }
        
            }

            
    </script>
    </HEAD>
    <BODY bgColor=white leftMargin=0 topMargin=0>
    <FORM id=Form1 name=Form1 action=Search.aspx method=post>
    <input name="tbGreateTime" type="text" value="" id="tbGreateTime" 

    readonly
    ="true" onclick="javascript:Calendar(this);" 

    style
    ="70px;cursor:hand;" />
    </body>
    </html>

    图片和日历rar

    6.当前时间

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>时钟</title>
    <script language="VBScript">
    <!--
    sub show_time()
    frmclock.txtDate.value
    =date()
    frmclock.txtTime.value
    =time()
    settimeout
    "show_time",1000
    end sub
    -->

    </script>


    </head>

    <body onLoad=show_time()>
    <form name="frmClock" >
      
    <font size="2">今天是: 
      
    <input type="text" name="txtDate" value="">
      
    <br>
      时间是:
    </font><font size="2">  
      
    <input type="text" name="txtTime" value="">
            
    </font></form>
    </body>
    </html>

    7.动态版权
    做网站很多时候要写版权的时间。

    <SCRIPT>document.write("1999-"+(new Date()).getYear())</SCRIPT>

    8.最常用最短小精悍的日历

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>每天日历</title>
    </head>

    <body>
    <script language="JavaScript" type="text/JavaScript">
    var day="";
    var month="";
    var ampm="";
    var ampmhour="";
    var myweekday="";
    var year="";
    mydate
    =new Date();
    myweekday
    =mydate.getDay();
    mymonth
    =mydate.getMonth()+1;
    myday
    = mydate.getDate();
    myyear
    = mydate.getYear();
    year
    =(myyear > 200? myyear : 1900 + myyear;
    if(myweekday == 0)
    weekday
    =" 星期日 ";
    else if(myweekday == 1)
    weekday
    =" 星期一 ";
    else if(myweekday == 2)
    weekday
    =" 星期二 ";
    else if(myweekday == 3)
    weekday
    =" 星期三 ";
    else if(myweekday == 4)
    weekday
    =" 星期四 ";
    else if(myweekday == 5)
    weekday
    =" 星期五 ";
    else if(myweekday == 6)
    weekday
    =" 星期六 ";
    document.write(year
    +""+mymonth+""+myday+"日 "+weekday);
    </script>
    </body>
    </html>

    9.下拉日历

    <form>
    <select id=year onchange=toDate()>
    <script>for(i=1970;i<=2010;i++)document.write("<option>"+i+"</option>")</script>
    </select>
    <select id=month onchange=toDate()>
    <script>for(i=1;i<=12;i++)document.write("<option>"+i+"</option>")</script>
    </select>
    <select id=day onchange=toDay()></select>
    <input name=weekday>
    </form>
    <script>
    var arr="日一二三四五六".split("")

    function toDate(){
        
    with(document.all){
            vYear
    =parseInt(year.options[year.selectedIndex].text)
            vMonth
    =parseInt(month.options[month.selectedIndex].text)
            day.length
    =0;
            
    for(i=0;i<(new Date(vYear,vMonth,0)).getDate();i++){day.options[day.length++].value=day.length;day.options[day.length-1].text=day.length;}
        }

        toDay();
    }


    function toDay(){
        vDay
    =parseInt(document.all.day.options[document.all.day.selectedIndex].value)
        document.all(
    "weekday").value="星期"+arr[new Date(vYear,vMonth-1,vDay).getDay()]
    }


    window.onload
    =toDate;
    </script>

    10.农历

    <script language="JavaScript">
    <!--
    function CalConv()
     
    {
     FIRSTYEAR 
    = 1998;
     LASTYEAR 
    = 2031;
     today 
    = new Date();
     SolarYear 
    = today.getFullYear();
     SolarMonth 
    = today.getMonth() + 1;
     SolarDate 
    = today.getDate();
     Weekday 
    = today.getDay();
     LunarCal 
    = [
      
    new tagLunarCal( 27,  53431001001101101 ),
      
    new tagLunarCal( 46,  04481001001011101 ), /* 88 */
      
    new tagLunarCal( 35,  05531100100101101 ), /* 89 */
      
    new tagLunarCal( 23,  40591101010010101 ),
      
    new tagLunarCal( 42,  01,  41101010010101 ),
      
    new tagLunarCal( 31,  02,  91101101001010 ),
      
    new tagLunarCal( 21,  23140101101010101 ), /* 93 */
      
    new tagLunarCal( 39,  05200101011010101 ),
      
    new tagLunarCal( 28,  76251010101011011 ),
      
    new tagLunarCal( 48,  00300010010111011 ),
      
    new tagLunarCal( 37,  01351001001011011 ), /* 97 */
      
    new tagLunarCal( 25,  53411100100101011 ),
      
    new tagLunarCal( 44,  04461010100101011 ),
      
    new tagLunarCal( 33,  05511011010010101 ),
      
    new tagLunarCal( 22,  46561011010101010 ), /* 101 */
      
    new tagLunarCal( 40,  01,  21011010101010 ),
      
    new tagLunarCal( 30,  92,  70101010110101 ),
      
    new tagLunarCal( 49,  03120100101110101 ),
      
    new tagLunarCal( 38,  04171010010110110 ), /* 105 */
      
    new tagLunarCal( 27,  66230101001010111 ),
      
    new tagLunarCal( 46,  00280101001010110 ),
      
    new tagLunarCal( 35,  01330110100100110 ),
      
    new tagLunarCal( 24,  42380111010010101 ), /* 109 */
      
    new tagLunarCal( 42,  04440110101010101 ),
      
    new tagLunarCal( 31,  05491010110101010 ),
      
    new tagLunarCal( 21,  26540101010110101 ),
      
    new tagLunarCal( 40,  00590100101101101 ), /* 113 */
      
    new tagLunarCal( 28,  62,  51010010101110 ),
      
    new tagLunarCal( 47,  03101010010011101 ),
      
    new tagLunarCal( 36,  04151101001001101 ),
      
    new tagLunarCal( 25,  55201110100100110 ), /* 117 */
      
    new tagLunarCal( 43,  00261101010100101 ),
      
    new tagLunarCal( 32,  01311101101010100 ),
      
    new tagLunarCal( 22,  32360110101101010 ) ];
     
    /* 民国年每月之日数 */
     SolarCal 
    = [ 312831303130313130313031 ];
     
    /* 民国年每月之累积日数, 平年与闰年 */ 
    SolarDays 
    = [  0315990120151181212243273304334365396,  0316091121152182213244274305335366397 ];
     AnimalIdx 
    = ["""""""""""""""""""""""" ];
     LocationIdx 
    = [ """""""西" ];
     
    if ( SolarYear <= FIRSTYEAR || SolarYear > LASTYEAR ) return 1;
     sm 
    = SolarMonth - 1;
      
    if ( sm < 0 || sm > 11 ) return 2;
      leap 
    = GetLeap( SolarYear );
     
    if ( sm == 1 )
      d 
    = leap + 28;
     
    else
      d 
    = SolarCal[sm];
     
    if ( SolarDate < 1 || SolarDate > d ) return 3;
     y 
    = SolarYear - FIRSTYEAR;
     acc 
    = SolarDays[ leap*14 + sm ] + SolarDate;
     kc 
    = acc + LunarCal[y].BaseKanChih;
     Kan 
    = kc % 10;
     Chih 
    = kc % 12;
     Location 
    = LocationIdx[kc % 4];
     Age 
    = kc % 60;
     
    if ( Age < 22 )
      Age 
    = 22 - Age;
     
    else
      Age 
    = 82 - Age;
     Animal 
    = AnimalIdx[ Chih ];
     
    if ( acc <= LunarCal[y].BaseDays ) {
      y
    --;
      LunarYear 
    = SolarYear - 1;
      leap 
    = GetLeap( LunarYear );
      sm 
    += 12;
      acc 
    = SolarDays[leap*14 + sm] + SolarDate;
      }

     
    else
      LunarYear 
    = SolarYear;
       l1 
    = LunarCal[y].BaseDays;
     
    for ( i=0; i<13; i++ ) {
      l2 
    = l1 + LunarCal[y].MonthDays[i] + 29;
      
    if ( acc <= l2 ) break;
      l1 
    = l2;
      }

     LunarMonth 
    = i + 1;
     LunarDate 
    = acc - l1;
     im 
    = LunarCal[y].Intercalation;
     
    if ( im != 0 && LunarMonth > im ) {
      LunarMonth
    --;
      
    if ( LunarMonth == im ) LunarMonth = -im;
      }

     
    if ( LunarMonth > 12 ) LunarMonth -= 12;
     today
    =new Date();
            
    function initArray(){
                             
    this.length=initArray.arguments.length
                             
    for(var i=0;i<this.length;i++)
                             
    this[i+1]=initArray.arguments[i]  }

           
    var d=new initArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
                 document.write(
    "<span class="jsdhtml"> ", today.getYear()," 年 ",today.getMonth()+1," 月 ",today.getDate()," 日 ",d[today.getDay()+1],"");
       document.write( 
    "<span class="jsdhtml">【<u> 农历 " + LunarMonth + "" + LunarDate + "日</u>】" );
                                            
    return 0
    }

     
    /* 求此民国年是否为闰年, 返回 0 为平年, 1 为闰年 */
    function GetLeap( year )
     
    {
       
    if ( year % 400 == 0 )
         
    return 1;
       
    else if ( year % 100 == 0 )
         
    return 0;
       
    else if ( year % 4 == 0 )
         
    return 1;
       
    else
         
    return 0;
     }

    function tagLunarCal( d, i, w, k, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13) {
     
    this.BaseDays = d;         /* 到民国 1 月 1 日到农历正月初一的累积日数 */
     
    this.Intercalation = i;    /* 闰月月份. 0==此年没有闰月 */
     
    this.BaseWeekday = w;      /* 此年民国 1 月 1 日为星期几再减 1 */
     
    this.BaseKanChih = k;      /* 此年民国 1 月 1 日之干支序号减 1 */
     
    this.MonthDays = [ m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13 ]; /* 此农历年每月之大小, 0==小月(29日), 1==大月(30日) */
    }

    //-->
    CalConv();
    </script>


    11.年历


    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>万年历</title>
    <style>
    th
    {color:#FFF;background-color:#F89807}
    td
    {color:#000;background-color:#FDEDCC}
    input,textarea,th,td
    {font-size:9pt}
    </style>
    </head>
    <body>
    <div id="hyout"></div>
    <script>

    var hy=new Date()
    var hyd=new Date()
    var cnt=new Array("","","","","","","")
    function hyout(hyy,hym){
        
    var outxt=""
        outxt
    +="<table border=0 width=100% cellspacing=0><tr><th><font color=#FFFFFF>"
        outxt
    +=hym+"月</font>"
        outxt
    +="<table border=0 width=100% cellspacing=1 cellpadding=0><tr align=center>"
        
    for(i=0;i<cnt.length;i++){
            outxt
    +="<td>"+cnt[i]+"</td>"
        }

        outxt
    +="</tr><tr align=center>"
        
    var j=0
        hyd.setYear(hyy)
        hyd.setMonth(
    --hym)
        hyd.setDate(
    1)
        
    for(var i=1;i<=42;i++){
            
    if((i%7)==1&&i>1)outxt+="</tr><tr align=center>"
            
    if((i<=hyd.getDay())||(hyd.getMonth()!=hym)){
                outxt
    +="<td> </td>"
            }
    else{
                hyd.setDate(
    ++j)
                
    if(hyd.getMonth()==hym){
                    
    if(hyd.getDate()==hy.getDate()&&hyd.getMonth()==hy.getMonth()&&hyd.getYear()==hy.getYear()){
                        outxt
    +="<th>"+j+"</th>"
                    }
    else{
                        outxt
    +="<td>"+j+"</td>"
                    }

                }
    else{
                    outxt
    +="<td> </td>"
                }

            }

        }

        outxt
    +="</tr></table></th></tr><tr><th></th></tr></table>"
        
    return outxt
    }

    function hyouty(hyy){
        hyy
    =parseFloat(0+hyy)
        
    if(hyy==0) hyy=hy.getYear()
        outxt
    ="<table width=100% border=1 bordercolor=#000000><form><tr><td colspan=4 align=right>公元:<input type=text name=hyyear size=4 maxlength=4 value="+hyy+"> 年 <input type=button value=查看 onclick=hyouty(this.form.hyyear.value)></td></form></tr><tr>"
        
    for(var i=1;i<=12;i++){
            
    if(i%4==1&&i>1)outxt+="</tr><tr>"
            outxt
    +="<td>"+hyout(hyy,i)+"</td>"
        }

        outxt
    +="</tr></table>"
        document.all[
    "hyout"].innerHTML=outxt
    }

    hyouty(hy.getYear())
    </script>
    </body>
    </html> 






    12.广泛应用的一个日历控件
    点评:
    本控件界面美观,本人在多个企业的系统看到该控件,所以分享给大家。

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
    <html>
    <head runat="server">
        
    <title>日历控件</title>
        
    <script type="text/javascript" src="popcalendar.js"></script>

    </head>
    <body>
        
    <form id="form1" runat="server">
        
    <div>
        
    <asp:textbox id="txt_StartCPXG_DATE" runat="server" Width="100px" ReadOnly="True" CssClass="edLine"></asp:textbox>

            
    <img id="Image_blqx1" style="CURSOR: hand" onclick="popUpCalendar(this,document.forms[0].txt_StartCPXG_DATE,'yyyy-mm-dd')"
                                     src
    ="images/calendar.gif" /></div>
        
    </form>
    </body>
    </html>


    图片和js代码 http://download1.csdn.net/down3/20070514/14145100709.rar

  • 相关阅读:
    移动前端开发之viewport的深入理解
    javascript的事件监听与捕获和冒泡
    AngularJS服务中serivce,factory,provider的区别
    使用shadow dom封装web组件
    Web Components之Custom Elements
    javascript 布尔类型值判断
    requestAnimationFrame()
    二十周年感言
    文件上传实例
    jhipster技术栈研究
  • 原文地址:https://www.cnblogs.com/meiproject/p/746797.html
Copyright © 2020-2023  润新知