asp.net千奇百怪的日曆

轉自:http://blog.csdn.net/21aspnet/archive/2007/05/14/1607712.aspx

作者:清清月兒

主頁:http://blog.csdn.net/21aspnet/           時間:2007.5.14

日曆控件是我們經常使用的,本文把常用的幾款日曆總結如下。 

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
="width: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=查看 οnclick=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

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章