⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cal.js

📁 大家老是学习吗俩玩玩把换偶啊靠你的奥 案件快乐
💻 JS
字号:
var mons = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

//获得 y 年 m 月的天数.
function get_days(y, m) 
{
	if(m == 2)
		return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0))? 29: 28);
	else
		return(mons[m-1]);
}

/*format : 
	yyyy-mm-dd 三个下拉列表

---------   ------   ------
|		| - |	 | - |    |
---------   ------   ------
*/

function cal(format, this_year, year_num, f_name, cont)
{
	this.format = format;
	this.years = year_num;

	if (format == '')
	{
		this.format = 'yyyy-mm-dd';
	}
	this.year = this_year + 1;
	this.prefix = f_name;

	this.div = document.getElementById(cont);
	this.create_select = function(name, onchange, map)
	{
		var tmp_sel = document.createElement("SELECT");
		tmp_sel.name = name;
		
		var opt_ele = null;
		var i = 0;
		for (var x in map)
		{
			opt_ele = document.createElement("option");
			opt_ele.value = x;
			opt_ele.text = map[x];
			tmp_sel.appendChild(opt_ele);
		}

		this.div.appendChild(tmp_sel);
		return tmp_sel;
	};

	this.mod_days = function()
	{
		var y = this.y_sel.value;
		var m = this.m_sel.value;
		var days = get_days(y, m);
		var d_sel = this.d_sel;

//		alert(days + '==' + d_sel.options.length);
		if (!d_sel || d_sel.options.length == days) return;

		var opts = d_sel.options;
		if (opts.length > days)
		{
			while(this.d_sel.options.length > days)
				this.d_sel.options[days] = null;
		}
		else
		{
			for (var x = opts.length + 1; x <= days; x++)
			{
				this.d_sel.options[this.d_sel.options.length] = new Option(x, x);
			}
		}
	};
	
	this.create = function(){
		//年
		var years = {};
		for (var x = 0; x < 80; x++)
			years[this.year - x] = this.year - x;

		this.y_sel = this.create_select(this.prefix + '_year', '', years);

		var yyy = this.y_sel.options;
		for (var a = 0; a < yyy.length; a++)
		{
			yyy[a].text = yyy[a].value;
		}
		
		//月
		var mons = {};
		for (var x = 101; x < 113; x++)
		{
			var v = (x+'').substring(1);
			mons[v] = v;
		}
		this.div.appendChild(document.createTextNode(" 年 "));
		this.m_sel = this.create_select(this.prefix + '_month', '', mons);
		this.div.appendChild(document.createTextNode(" 月 "));

		var mmm = this.m_sel.options;
		for (var a = 0; a < mmm.length; a++)
		{
			mmm[a].text = mmm[a].value;
		}
		if (this.format.indexOf('-dd') > -1)
		{
			//日
			var days = {};
			for (var x = 101; x < 132; x++)
			{
				var v = (x+'').substring(1);
				days[v] = v;
			}

			this.d_sel = this.create_select(this.prefix + '_day', '', days);
			var ddd = this.d_sel.options;
			for (var a = 0; a < ddd.length; a++)
			{
				ddd[a].text = ddd[a].value;
			}
			this.div.appendChild(document.createTextNode(" 日 "));

		}

		var obj = this;	
		var f = function()
		{
			obj.mod_days();
		};
		this.m_sel.onchange = f;
		this.y_sel.onchange = f;
	};

	this.src = function(){
		return this.div.innerHTML;
	};

	this.getvalue = function(){
		var str = this.y_sel.value + '-' + this.m_sel.value;
		if (this.format.indexOf("-dd") > -1)
		{
			str += '-' + this.d_sel.value;
		}

		return str;
	};

	this.setvalue = function(v){
		if (v == '') return;
		var rex = /^(((19|20)[0-9]{2})-((0[1-9])|(1[0-2]))(-((0[1-9])|([1-2]\d)|(3[0-1])))?)$/;
		if (!rex.test(v)) 
			return;

		var vs = v.split('-');
		this.y_sel.value = vs[0];
		this.m_sel.value = vs[1];
		if (vs.length > 2) this.d_sel.value = vs[2];
	};

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -