博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

.NET 精致万年历

Posted on 2008-05-05 09:10  hyd309  阅读(633)  评论(0编辑  收藏  举报

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="wan.aspx.cs" Inherits="wan" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>查看万年历</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <center>
                <h1 style="font: 宋体|[font-style]">
                    请查询万年历</h1>
                
       </div>
    </form>
</body>

<script language="JavaScript">

<!-- for sucky browsers

 

Months = new Array(12);

Months[0] = "一月";

Months[1] = "二月";

Months[2] = "三月";

Months[3] = "四月";

Months[4] = "五月";

Months[5] = "六月";

Months[6] = "七月";

Months[7] = "八月";

Months[8] = "九月";

Months[9] = "十月";

Months[10] = "十一月";

Months[11] = "十二月";

 

function PadSpaces(TheString)

{

 var Spaces = "             ";

 len = Math.round((9 - TheString.length)/2);

 

 return Spaces.substring(0,len) + TheString;

}

 

function NumLeapYears(StartYear, EndYear)

{

  var LeapYears, i;

 

  if (EndYear >= StartYear){

   for(LeapYears = 0; StartYear <= EndYear; StartYear++)

   if (IsLeapYear(StartYear)) LeapYears++;

 }else{

 for(LeapYears = 0; EndYear <= StartYear; EndYear++)

   if (IsLeapYear(EndYear)) LeapYears++;

 }

  return LeapYears;

}

 

function IsLeapYear(Year)

{

 if(Math.round(Year/4) == Year/4){

  if(Math.round(Year/100) == Year/100){

   if(Math.round(Year/400) == Year/400)

    return true;

   else return false;

  }else return true;

 }

 return false;

}

 

function Trim(TheString)

{

 var len;

 

 len = TheString.length;

  while(TheString.substring(0,1) == " "){ //trim left

   TheString = TheString.substring(1, len);

    len = TheString.length;

 }

 

  while(TheString.substring(len-1, len) == " "){ //trim right

   TheString = TheString.substring(0, len-1);

    len = TheString.length;

  }

  return TheString;

}

 

function DetermineMonthIdx()

{

 var i, month, month_s, len;

 

 

 month = Trim(document.calform.elements[4].value);

 len = month.length;

 

 for( i = 0; i <12; i++){

      month_s = Months[i].substring(0,len);

  if (month_s.toUpperCase() == month.toUpperCase())

          return (i);

   }

   return -1;

}

 

function FindNewYearStartingDay(Year)

{

  var LeapYears, Years, Day;

 

  LeapYears = NumLeapYears(1995, Year);

 

  if  (Year >=1995)

   Years = (Year -1995)+LeapYears;

  else Years = (Year -1995)-LeapYears;

 

  if  (Year >=1995)

  Day = Math.round(((Years/7 - Math.floor(Years/7))*7)+.1);

  else Day = Math.round(((Years/7 -  Math.ceil(Years/7))*7)-.1);

 

 if (Year >=1995){

   if(IsLeapYear(Year)) Day--;

  }else Day += 7;

 

  if(Day < 0) Day = 6;

  if(Day > 6) Day = 0;

  return Day;

}

 

function FindNumDaysInMonth(Year, Month)

{

  if(Month == 1){

     if(IsLeapYear(Year)) return 29;

     else return 28;

  }else{

     if(Month >6) Month++;

     if(Month/2 == Math.round(Month/2))  return 31;

  }

 return 30; 

}

 

function FindMonthStartDay(NewYearDay, Year, Month)

{

   var MonthStartDay;

 

   AddArray = new Array(12);

 

   AddArray[0]=0;AddArray[1]=3;AddArray[2]=3;AddArray[3]=6;

 AddArray[4]=1;AddArray[5]=4;AddArray[6]=6;AddArray[7]=2;

 AddArray[8]=5;AddArray[9]=0;AddArray[10]=3;AddArray[11]=5;

 

   MonthStartDay = NewYearDay + AddArray[Month];

   if(IsLeapYear(Year)  && (Month ) > 1) MonthStartDay ++;

 

   if (MonthStartDay > 6) MonthStartDay -= 7;

 

   return MonthStartDay;

}

 

function  FillCalendar()

{

   var Year, Month, Midx, NewYearDay, MonthStartDay;

 var NumDaysInMonth, i, t;

 

   Year = parseFloat(document.calform.elements[1].value);

   Month = document.calform.elements[4].value;

 

   Midx  =  DetermineMonthIdx();

   if (Midx == -1){

     alert ("Can't recognize that month");

     return;

   }

 

   NewYearDay = FindNewYearStartingDay(Year);

   MonthStartDay = FindMonthStartDay(NewYearDay, Year,  Midx);

   NumDaysInMonth = FindNumDaysInMonth(Year, Midx);

 

   for(i = 6;  i < 43;  i++){

  t = i-5-MonthStartDay;

  if ( t >= 1  &&  t <= NumDaysInMonth)

   document.calform.elements[i].value =t;

  else document.calform.elements[i].value = "";

   }

}

 

function IncDecYear(val)

{

 var valNum = parseInt(val);

 var valNum2 = parseInt(document.calform.elements[1].value)

 document.calform.elements[1].value = valNum2 + valNum;

 

 FillCalendar()

}

 

function IncDecMonth(val)

{

 var valNum = parseInt(val);

   var Midx  =  DetermineMonthIdx();

 

 Midx += valNum;

 if(Midx > 11) Midx = 0;

 if(Midx < 0)  Midx = 11;

 

 

 document.calform.elements[4].value = PadSpaces(Months[Midx]);

 

 FillCalendar()

}

 

// -->

</script>

<table border="1" bgcolor="#000000" cellpadding="1" cellspacing="1">
    <table border="0" cellpadding="0" cellspacing="0">
        <form name="calform">
            <tr>
                <td align="center" cellpadding="0" cellspacing="0" bgcolor="#000000">
                    <input type="button" value="<<" onclick="IncDecYear(-1)" name="button">
                </td>
                <th cellpadding="0" cellspacing="0" bgcolor="#aaaaaa" colspan="5" align="center">
                    <input size="4" type="text" value="1993" name="text">
                </th>
                <td align="center" cellpadding="0" cellspacing="0" bgcolor="#000000">
                    <input type="button" value=">>" onclick="IncDecYear(1)" name="button2">
                </td>
            </tr>
            <tr>
                <td align="center" bgcolor="#000000">
                    <input type="button" value="<<" onclick="IncDecMonth(-1)" name="button2">
                </td>
                <th bgcolor="#aaaaaa" colspan="5" align="center">
                    <input size="9" type="text" value=" January " name="text">
                </th>
                <td align="center" bgcolor="#000000">
                    <input type="button" value=">>" onclick="IncDecMonth(1)" name="button2">
                </td>
            </tr>
            <tr>
                <th bgcolor="#ffcccc">
                    S</th>
                <th bgcolor="#ccccff">
                    M</th>
                <th bgcolor="#ccccff">
                    T</th>
                <th bgcolor="#ccccff">
                    W</th>
                <th bgcolor="#ccccff">
                    T</th>
                <th bgcolor="#ccccff">
                    F</th>
                <th bgcolor="#ccccff">
                    S</th>
            </tr>
            <tr>
                <td bgcolor="#ffcccc">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
            </tr>
            <tr>
                <td bgcolor="#ffcccc">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
            </tr>
            <tr>
                <td bgcolor="#ffcccc">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
            </tr>
            <tr>
                <td bgcolor="#ffcccc">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
            </tr>
            <tr>
                <td bgcolor="#ffcccc">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
            </tr>
            <tr>
                <td bgcolor="#ffcccc">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#ccccff">
                    <input type="text" size="2" name="text">
                </td>
                <td bgcolor="#3344aa" colspan="5">
                    <input type="text" name="text">
                </td>
            </tr>
        </form>
    </table>
</table>

<script language="JavaScript">

<!--

 myDate = new Date();

 var Month = parseInt(myDate.getMonth());

 

 document.calform.elements[1].value =  myDate.getYear();

 document.calform.elements[4].value = PadSpaces(Months[Month]);

 

 document.calform.elements[43].value = "今天是:" +

  Months[Month].substring(0,3) +

  myDate.getDate() + "日" + myDate.getYear()+"年";

 

 FillCalendar();

 

// -->


</script>

<br />
<br />
<br />
<br />


</center>

</html>