XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


[原创心得] 给大家发一个自己写的js的日历

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: [原创心得] 给大家发一个自己写的js的日历  
  本主题被作者加入到他/她的 Blog 中  
 
ctrl12
版主
Rank: 7Rank: 7Rank: 7



UID 478
精华 0
积分 1033
帖子 1033
阅读权限 100
注册 2002-9-28
状态 离线
给大家发一个自己写的js的日历



<style>
        .today{border : thin solid red;background-color:blue;color : #fff }
        .day{background-color:blue;color : #fff}
        table{font:icon}
        input{BORDER:blue 1px outset;background-color:#9999FF;cursor:hand;TEXT-ALIGN:center;}
</style>
<script language="javascript">
        /*var months = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");*/
        var months = new Array("一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二");  
        var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31);
        /*var weeks = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");*/
        var weeks = new Array("星期日","星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
        //获得润年的月份
        function GetRunYear(year,month)
        {
               
                if(month==0)
                {
                        month =12;
                }else if(month == (-1))
                {
                        month = 11;
                }
                if(1== month-1)
                {
                        return ((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? 29 : 28;
                }
                else
                {
                       
                        return daysInMonth[month-1]
                }
        }

        function GetToDay()
        {
                this.now = new Date();
                this.year = this.now.getFullYear();
                this.month = this.now.getMonth()+1;
                this.day = this.now.getDate();
        }

        today  = new GetToDay();

        GetMonth=today.month;
        GetYear = today.year;
        function CYear(flag)
        {
                flag==1?num=1:num=(-1);
                GetYear = GetYear + num;
                ShowFarmtDate(GetYear,GetMonth)
        }

        function CMonth(flag)//0向前,1:向后
        {
                flag==1?num=1:num=(-1);
                GetMonth =GetMonth + num;

                if(GetMonth == 0 || GetMonth==13)
                {
                        if(flag==1)
                        {
                                GetMonth=1;
                                GetYear = GetYear+1;
                        }
                        else
                        {
                                GetMonth = 12;
                                GetYear = GetYear-1;
                        }
                       
                }       
                ShowFarmtDate(GetYear,GetMonth)
        }

        function newCalendar(year,month)
        {
                today = new GetToDay();
                var parseYear = parseInt(year);
                var newCal = new Date(parseYear, month-1, 1);
                var day = -1;
                var Hday = -1;
                var ADay = 1;
                var startDay = newCal.getDay();
                var daily = 0;
                if ((today.year == newCal.getFullYear()) &&(today.month == month))
                day = today.day;
                Hday = parseInt(today.day);
                var tableCal = document.all.calendar.tBodies.dayList;
                var intDaysInMonth =GetRunYear(parseYear,month);
                var LastDaysInMonth = GetRunYear(parseYear,newCal.getMonth() );
                var LastDays = parseInt(LastDaysInMonth) - parseInt(startDay);
                var AfterDays = intDaysInMonth;
                for (var intWeek = 0; intWeek < tableCal.rows.length;intWeek++)
                for (var intDay = 0;intDay < tableCal.rows[intWeek].cells.length;intDay++)
                {
                        var cell = tableCal.rows[intWeek].cells[intDay];
                        if ((intDay == startDay) && (0 == daily))
                        daily = 1;
                        if(day==daily)
                        //今天,调用今天的Class
                        cell.className = "today";
                        else if(Hday==daily)
                        //周六
                        cell.className = "day";
                        else if (intDay==0)
                        //周日
                        cell.className ="satday";
                        else
                        //平常
                        cell.className="normal";                        
                        if ((daily > 0) && (daily <= intDaysInMonth))
                        {
                                cell.innerText = daily;
                                daily++;
                        }
                        else if(daily == 0)
                        {       
                                LastDays++;
                                cell.innerHTML ="<font color='#c0c0c0'>"+ LastDays+"</font>";        
                        }
                        else if(daily  > intDaysInMonth)
                        {       
                                cell.innerHTML ="<font color='#c0c0c0'>"+ ADay+"</font>";
                                ADay++;
                        }
                 }
        }

        function ShowFarmtDate(year,month)
        {       
                document.getElementById("TopDate").innerHTML="<font style='font-weight :bold ;color:#fff'>"+year+"年"+months[month-1]+"月</font>";
                document.getElementById("aa").innerHTML=ShowDate();
                newCalendar(year,month);
        }

        function showDate(o)
        {
                alert(o.innerText);
        }

        function ShowDate()
        {
                var strDate;
                        //strDate+="<input type='hidden' name='ret'>";
                        strDate ="<table id='calendar' cellspacing='0' cellpadding='0' >";
                        //日历体部分--开始
                        strDate+="<tr CLASS='days' style='padding-left:2px;padding-right:2px;'>";
                        strDate+="<td class=satday>" + weeks[0] + "</td>";
                        for (var intLoop = 1; intLoop < weeks.length-1; intLoop++)                
                        strDate+="<td>" + weeks[intLoop] + "</td>";
                        strDate+="<td class=sunday>" + weeks[intLoop] + "</td>";
                        strDate+="</tr>";
                        strDate+="<tr ><td colspan='7'><div style='border-style:solid;'></div></td></tr>";
                        strDate+="<tbody border=1 cellspacing='0' cellpadding='0' ID='dayList' ALIGN=CENTER > ";
                        for (var intWeeks = 0; intWeeks < 6; intWeeks++)
                        {
                                strDate+="<tr style='cursor:hand'>";
                                for (var intDays = 0; intDays < weeks.length; intDays++)
                                strDate+="<td onclick='showDate(this);'></td>";
                                strDate+="</tr>";
                        }
                        strDate+="</tbody></table> ";
                        return strDate;
        }

</script>
<div style=" background-color:blue "><input type="button" id="GoDate" value="<<" onclick="javascript:CYear(0)"> &nbsp;<input type="button" id="GoMonth" value="<" onclick="javascript:CMonth(0)">&nbsp;&nbsp; <div id="TopDate" style="text-align:center;position:absolute "></div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" id="BackMonth" value=">" onclick="javascript:CMonth(1)"> &nbsp;<input type="button" id="BackDate" value=">>" onclick="javascript:CYear(1)"></div>
<div id="aa"></div>
<script language="javascript">ShowFarmtDate(new Date().getFullYear(),new Date().getMonth()+1);</script>
<table><tr><td style="border : thin solid red;width:35px;HEIGHT:1px">&nbsp;&nbsp;&nbsp;</td><td><strong>今天:<script language="javascript">document.write(new Date().getFullYear()+" - "+new Date().getMonth()+" - "+new Date().getDate());</script> </strong></td></tr></table>
过段时间将作成.net控件,发布出来
效果和window的一样
2006-5-17 14:38#1
查看资料  Blog  发短消息  顶部
 
jesdily
版主
Rank: 7Rank: 7Rank: 7



UID 2759
精华 0
积分 38
帖子 38
阅读权限 100
注册 2006-4-14
状态 离线
很好的东西,很实用,谢谢分享
2006-5-17 17:36#2
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-12-3 07:53 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver