`
lovexz365
  • 浏览: 106844 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript 简易日历控件 应用

阅读更多
	function is_leap(year) { return (year%100==0 ? res=(year%400==0 ? 1 : 0) : res=(year%4==0 ? 1: 0)); } //是否为闰年
		
		var nstr=new Date(); //当前Date资讯
		var year  =  nstr.pattern("yyyy");
		var month =  Number(nstr.pattern("MM"));
		var ynow=nstr.getFullYear(); //年份
		var mnow=nstr.getMonth(); //月份
		var dnow=nstr.getDate(); //今日日期
		var n1str=new Date(ynow,mnow,1); //当月第一天Date资讯
		
		var firstday=n1str.getDay(); //当月第一天星期几
		
		var m_days=new Array(31,28+is_leap(ynow),31,30,31,30,30,31,30,31,30,31); //各月份的总天数
		
		var tr_str=Math.ceil((m_days[mnow] + firstday)/7); //表格所需要行数
		
		//打印表格第一行(有星期标志)
		var tablestr = "";
		tablestr +="<table id='ttt' border='1' align='center' width='220px;' style='margin:5px;' cellspacing='0'><tr><td align='center'>日</td><td align='center'>一</td><td align='center'>二</td><td align='center'>三</td><td align='center'>四</td><td align='center'>五</td><td align='center'>六</td></tr>";
		
		for(i=0;i<tr_str;i++) { //表格的行
		   document.write("<tr>");
		   for(k=0;k<7;k++) { //表格每行的单元格
		      idx=i*7+k; //单元格自然序列号
		      date_str=idx-firstday+1; //计算日期
		      (date_str<=0 || date_str>m_days[mnow]) ? date_str="&nbsp;" : date_str=idx-firstday+1; //过滤无效日期(小于等于零的、大于月总天数的)
		      //打印日期:今天底色为红
		      date_str==dnow ? tablestr +="<td id='calendar_date_"+ date_str+"' style ='color:red;text-align:center;font-weight:bold;'>" + date_str + "</td>" :  tablestr +="<td id='calendar_date_"+ date_str+"' align='center'>" + date_str + "</td>";
		   }
		    tablestr +="</tr>"; //表格的行结束
		}
		 tablestr += "</table>"; //表格结束
	


最后把tablestr写到页面上即可,样式可以自己修饰
document.write(tablestr)或者通过下面的方式写在Div中:
$("#mycalendar").html(tablestr);

	table#ttt {
				table-layout: fixed;
				border-collapse: collapse;
				border: #eee 1px solid;
			}
			
			table#ttt td {
				height: 30px;
				border: #eee 1px solid;
			}


td的Id是我在项目中用到的,为了填充单元格的背景色,表示当前月某一天有工作任务。


	$.getJSON(url,{onlyMeTask:'true',underYear:year,underMonth:month},function(data) {
					for ( var i = 0; i < data.length; i++) {
						//alert(data[i].projectName)
						var a  = Number(new Date(data[i].startDateLong).pattern("dd"));
						var b  = Number(new Date(data[i].endDateLong).pattern("dd"));
						if(data[i].fullMoon == '1'){
							continue;
						}
						if(a>b)
							b += 31;
						for (var k = a ;k<=b;k++){
							$("#calendar_date_"+k).css("background","#F4A460");
						}
					}
				});

分享到:
评论

相关推荐

    javascript中Date对象应用之简易日历实现

    简易日历作为javascript中Date对象的常见应用,用途较广泛,本文将详细说明简易日历的实现思路。 效果演示   HTML说明  使用type=number的两个input分别作为年和月的输入控件,这样在高级浏览器下自带调节按钮 ...

    使用vue写的一个简单的日历

    使用vue写的一个简单的日历

    《Android应用开发揭秘》附带光盘代码.

     4.2 常用控件应用  4.2.1 文本框(Textiew)  4.2.2 列表(ListView)  4.2.3 提示(T0ast)  4.2.4 编辑框(EditText)  4.2.5 单项选择(RadioGroup、RadioButton  4.2.6 多项选择(CheckBox)  4.2.7 下拉列表...

    《Android应用开发揭秘》源码

     4.2 常用控件应用  4.2.1 文本框(Textiew)  4.2.2 列表(ListView)  4.2.3 提示(T0ast)  4.2.4 编辑框(EditText)  4.2.5 单项选择(RadioGroup、RadioButton  4.2.6 多项选择(CheckBox)  4.2.7 下拉列表...

    asp.net知识库

    Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0中定制Expression ...

    android开发揭秘PDF

    4.2 常用控件应用 4.2.1 文本框(Textiew) 4.2.2 列表(ListView) 4.2.3 提示(T0ast) 4.2.4 编辑框(EditText) 4.2.5 单项选择(RadioGroup、RadioButton 4.2.6 多项选择(CheckBox) 4.2.7 下拉列表(Spinner) 4.2.8 自动...

    java开源包1

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包11

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包2

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包3

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包6

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包5

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包10

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包4

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包8

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包7

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包9

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

    java开源包101

    JCalendarButton是一个简单的java swing日历选择控件。它能够在日期输入框后面弹出一个日历。 网页搜索爬虫 BlueLeech BlueLeech是一个开源程序,它从指定的URL开始,搜索所有可用的链接,以及链接之上的链接。它在...

Global site tag (gtag.js) - Google Analytics