`
anysky131
  • 浏览: 177185 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

日历控件的代码及使用方法

 
阅读更多

calendar.js

//now date

function getNowDate()
{
var nn=new Date();
year1=nn.getYear();
mon1=nn.getMonth()+1;
date1=nn.getDate();
var monstr1;
var datestr1
if(mon1<10)
monstr1="0"+mon1;
else
monstr1=""+mon1;

if(date1<10)
datestr1="0"+date1;
else
datestr1=""+date1;
return year1+"-"+monstr1+"-"+datestr1;
}
//last date

function getlastweekDate()
{
var nn=new Date();
year1=nn.getYear();
mon1=nn.getMonth()+1;
date1=nn.getDate();

var mm=new Date(year1,mon1-1,date1);
var tmp1=new Date(2000,1,1);
var tmp2=new Date(2000,1,15);
var ne=tmp2-tmp1;
var mm2=new Date();
mm2.setTime(mm.getTime()-ne);


year2=mm2.getYear();
mon2=mm2.getMonth()+1;
date2=mm2.getDate();


if(mon2<10)
monstr2="0"+mon2;
else
monstr2=""+mon2;

if(date2<10)
datestr2="0"+date2;
else
datestr2=""+date2;


return year2+"-"+monstr2+"-"+datestr2;
}



var gdCtrl = new Object();
var goSelectTag = new Array();
var gcGray = "#808080";
var gcToggle = "#FB8664";
var gcBG = "#e5e6ec";
var previousObject = null;

var gdCurDate = new Date();
var giYear = gdCurDate.getFullYear();
var giMonth = gdCurDate.getMonth()+1;
var giDay = gdCurDate.getDate();

function fSetDate(iYear, iMonth, iDay){
var VicPopCal = document.getElementById('VicPopCal');
VicPopCal.style.visibility = "hidden";
if ((iYear == 0) && (iMonth == 0) && (iDay == 0)){
gdCtrl.value = "";
}else{
iMonth = iMonth + 100 + "";
iMonth = iMonth.substring(1);
iDay = iDay + 100 + "";
iDay = iDay.substring(1);
if(gdCtrl.tagName == "INPUT"){
gdCtrl.value = iYear+"-"+iMonth+"-"+iDay;
}else{
gdCtrl.innerText = iYear+"-"+iMonth+"-"+iDay;
}
}

for (i in goSelectTag)
goSelectTag[i].style.visibility = "visible";
goSelectTag.length = 0;

window.returnValue=gdCtrl.value;
//window.close();


}

function HiddenDiv()
{
var VicPopCal = document.getElementById('VicPopCal');
var i;
VicPopCal.style.visibility = "hidden";
for (i in goSelectTag)
goSelectTag[i].style.visibility = "visible";
goSelectTag.length = 0;

}
function fSetSelected(aCell){
var tbSelMonth1 = document.getElementById('tbSelMonth');
var tbSelYear1 = document.getElementById('tbSelYear');
var iOffset = 0;
var iYear = parseInt(tbSelYear1.value);
var iMonth = parseInt(tbSelMonth1.value);

aCell.bgColor = gcBG;

// with (aCell.children["cellText"]){

with (aCell.childNodes[0]){
var iDay = parseInt(innerHTML);
if (color==gcGray)
iOffset = (Victor<10)?-1:1;
iMonth += iOffset;
if (iMonth<1) {
iYear--;
iMonth = 12;
}else if (iMonth>12){
iYear++;
iMonth = 1;
}
}
fSetDate(iYear, iMonth, iDay);
}

function Point(iX, iY){
this.x = iX;
this.y = iY;
}

function fBuildCal(iYear, iMonth) {
var aMonth=new Array();
for(i=1;i<7;i++)
aMonth[i]=new Array(i);

var dCalDate=new Date(iYear, iMonth-1, 1);
var iDayOfFirst=dCalDate.getDay();
var iDaysInMonth=new Date(iYear, iMonth, 0).getDate();
var iOffsetLast=new Date(iYear, iMonth-1, 0).getDate()-iDayOfFirst+1;
var iDate = 1;
var iNext = 1;

for (d = 0; d < 7; d++)
aMonth[1][d] = (d<iDayOfFirst)?-(iOffsetLast+d):iDate++;
for (w = 2; w < 7; w++)
for (d = 0; d < 7; d++)
aMonth[w][d] = (iDate<=iDaysInMonth)?iDate++:-(iNext++);
return aMonth;
}

function fDrawCal(iYear, iMonth, iCellHeight, sDateTextSize) {
//var WeekDay = new Array("S","M","T","W","T","W","S");

var WeekDay = new Array("日","一","二","三","四","五","六");
var styleTD = " bgcolor='"+gcBG+"' bordercolor='"+gcBG+"' valign='middle' align='center' height='"+iCellHeight+"' style='font:bold arial "+sDateTextSize+";"; //Coded by Hcy email:hcy110@263.net


with (document) {
write("<tr>");
for(i=0; i<7; i++){
write("<td "+styleTD+"color:maroon' >"+ WeekDay[i] + "</td>");
}
write("</tr>");

for (w = 1; w < 7; w++) {
write("<tr>");
for (d = 0; d < 7; d++) {
write("<td id='calCell' "+styleTD+"cursor:pointer;' onMouseOver='this.bgColor=gcToggle' onMouseOut='this.bgColor=gcBG' onclick='fSetSelected(this)'>");
write("<font id='cellText' name='cellText' Victor='Hcy_Flag'> </font>");
write("</td>")
}
write("</tr>");
}
}
}

function fUpdateCal() {

iYear = document.getElementById('tbSelYear').value;
iMonth = document.getElementById('tbSelMonth').value;
myMonth = fBuildCal(iYear, iMonth);

var cellText = document.getElementsByName('cellText');
var i = 0;
for (w = 0; w < 6; w++)
for (d = 0; d < 7; d++)
with (cellText[(7*w)+d]) {
Victor = i++;
if (myMonth[w+1][d]<0) {
color = gcGray;
innerHTML = -myMonth[w+1][d];
}else{
color = ((d==0)||(d==6))?"red":"black";
innerHTML = myMonth[w+1][d];
}
}

}

function fSetYearMon(iYear, iMon){
var tbSelMonth = document.getElementById('tbSelMonth');
tbSelMonth.options[iMon-1].selected = true;

var tbSelYear = document.getElementById('tbSelYear');
for (i = 0; i < tbSelYear.length; i++)
if (tbSelYear.options[i].value == iYear)
tbSelYear.options[i].selected = true;

fUpdateCal(iYear, iMon);

}

function fPrevMonth(){
var tbSelYear = document.getElementById('tbSelYear');
var tbSelMonth = document.getElementById('tbSelMonth');
var iMon = tbSelMonth.value;
var iYear = tbSelYear.value;

if (--iMon<1) {
iMon = 12;
iYear--;
}

fSetYearMon(iYear, iMon);
}

function fNextMonth(){
var tbSelMonth = document.getElementById('tbSelMonth');
var tbSelYear = document.getElementById('tbSelYear');
var iMon = tbSelMonth.value;
var iYear = tbSelYear.value;

if (++iMon>12) {
iMon = 1;
iYear++;
}

fSetYearMon(iYear, iMon);
}

function fToggleTags(){
var select = document.getElementsByTagName("SELECT");

var isIE4 = ((navigator.userAgent.indexOf('Win') != -1) && (navigator.userAgent.indexOf('MSIE') != -1) && (parseInt(navigator.appVersion) >= 4 ));
if (isIE4)
{
for (i=0; i<select.length; i++)
if ((select[i].Victor != 'Won') && fTagInBound(select[i])){
select[i].style.visibility = "hidden";
goSelectTag[goSelectTag.length] = select[i];
}

with (document.all.tags("SELECT")){
for (i=0; i<length; i++)
if ((item(i).Victor!="Won")&&fTagInBound(item(i))){
item(i).style.visibility = "hidden";
goSelectTag[goSelectTag.length] = item(i);
}
}
}

}

function fTagInBound(aTag){
var VicPopCal = document.getElementById('VicPopCal');
with (VicPopCal.style){
var l = parseInt(left);
var t = parseInt(top);
var r = l+parseInt(width);
var b = t+parseInt(height);
var ptLT = fGetXY(aTag);
return !((ptLT.x>r)||(ptLT.x+aTag.offsetWidth<l)||(ptLT.y>b)||(ptLT.y+aTag.offsetHeight<t));
}
}

function fGetXY(aTag){
var oTmp = aTag;
var pt = new Point(0,0);
do {
pt.x += oTmp.offsetLeft;
pt.y += oTmp.offsetTop;
oTmp = oTmp.offsetParent;
} while(oTmp.tagName!="BODY");

return pt;
}

// Main: popCtrl is the widget beyond which you want this calendar to appear;

// dateCtrl is the widget into which you want to put the selected date.

// i.e.: <input type="text" name="dc" style="text-align:center" readonly><INPUT type="button" value="V" onclick="fPopCalendar(dc,dc);return false">

function fPopCalendar(popCtrl, dateCtrl,strDate){
var VicPopCal = document.getElementById('VicPopCal');
if (popCtrl == previousObject){
if (VicPopCal.style.visibility == "visible"){
HiddenDiv();
return true;
}

}

previousObject = popCtrl;
gdCtrl = dateCtrl;
fInitialDate(strDate);

fSetYearMon(giYear, giMonth);

var point = fGetXY(popCtrl);
with (VicPopCal.style) {
left = point.x;
top = point.y+popCtrl.offsetHeight;
width = VicPopCal.offsetWidth;
width <span

分享到:
评论

相关推荐

    JSP日历控件代码

    **JSP日历控件代码详解** 在网页开发中,日期选择控件是常见的功能之一,JSP(JavaServer Pages)作为服务器端脚本语言,提供了丰富的功能来创建动态网页。本篇将深入探讨如何在JSP中实现日历控件,并基于提供的...

    js日历控件代码及用法

    本教程将深入探讨JavaScript日历控件的实现原理、代码结构以及如何在实际项目中应用。 首先,我们要明白JavaScript日历控件的基本工作原理。它是通过JavaScript动态生成HTML元素,比如`&lt;table&gt;`,来模拟一个可交互...

    日历控件完整代码

    为了确保日历控件在不同浏览器和设备上正常工作,开发者需要考虑跨浏览器兼容性,如使用jQuery或其他库来简化兼容性问题。此外,对于移动设备,可能需要调整触摸事件的处理和布局以适应小屏幕。 总结,日历控件是...

    VBA EXCEL制作日历控件

    在EXCEL中,可以通过双击单元格,调出日历控件,通过对日历控件的操作,将所选日期更新到单元格中,该控件代码完全开放免费,供大家学习和使用,感兴趣的同学可以多多关注www.allmlp.com,让我们共同成长共同学习。

    MFC日历控件的使用方法

    这样,我们就可以在代码中通过m_monthCal引用日历控件。同时,确保在消息映射(Message Map)中添加控件的消息处理函数,比如ON_WM_NOTIFY(),用于处理通知消息。 在消息处理函数中,我们需要覆盖ON_WM_NOTIFY()来...

    日历控件 附加源代码

    "日历控件 附加源代码"的主题提供了使用日历控件的一个实例,这将帮助开发者更好地理解和实现此类功能。 首先,日历控件是一种图形用户界面组件,它允许用户通过可视化的日历样式来选择日期。这种控件通常具有友好...

    VC++ 个性化日历控件代码

    ### VC++ 个性化日历控件代码 在VC++中,日历控件是一个非常实用且功能丰富的组件,它能够帮助用户快速选择日期,并通过不同的显示样式满足多种界面设计需求。本文将详细介绍如何在VC++应用程序中使用并个性化日历...

    日历控件12

    在“日历控件140821”这个文件中,很可能包含了这些方面的示例代码、样式文件和配置文档,用于帮助开发者理解和实现上述功能。通过深入学习和实践,开发者可以掌握创建高效、用户友好的日历界面的技能,提升应用的...

    日历控件源代码和使用方法。简单易用。

    本文将深入探讨一款日历控件的源代码及其使用方法,适用于JavaScript编程环境,具有良好的兼容性和易用性。 首先,我们要理解日历控件在网页中的作用。通常,这种控件用于在线预订系统、日程安排或者任何需要用户...

    winform自定义日历控件

    本案例中,我们讨论的是如何创建一个"winform自定义日历控件",模仿百度的日历展示样式。这个自定义控件通常会包含日期选择、事件标记、颜色定制等功能,以提供更加友好和个性化的用户体验。 在C#中,我们可以继承`...

    html js脚本日历控件

    HTML 和 JavaScript 脚本日历控件是网页开发中常用的一种交互元素,它允许用户在网页上方便地选择日期,通常与表单控件配合使用,提高用户体验。这种控件在网页应用、在线预订系统、事件管理或任何需要用户输入日期...

    excel日历控件代码

    在Excel中,为了提高用户对日期输入的便捷性,我们可以使用日历控件来创建一个直观的日期选择界面。这个控件允许用户通过点击日历图标来选择日期,而不是手动输入,大大提升了数据输入的准确性和效率。以下是实现这...

    几种日历控件代码,附图

    ### 几种日历控件代码详解 #### 概述 本文将详细介绍一种网页日历控件的实现方式,该控件可通过简单的HTML输入框与JavaScript脚本相结合,实现日期的选择功能。文中提供了三种不同的实现示例,并附带了相关的图片以...

    jquery的日历控件控件代码

    然后,我们可以使用以下代码来初始化日历控件: ```javascript $(function() { $("#datePicker").datepicker({ dateFormat: "yy-mm-dd", // 设置日期格式 showOn: "both", // 既显示按钮也响应输入框点击 ...

    JS日历控件及其详细使用方法

    1.介绍:这是WalkingPoison根据梅花雨的日历控件修改发展出来的一个日历 Javascript 页面脚本控件,适用于微软的 IE (5.0以上)浏览器,从2.59版本开始支持Firefox浏览器。 2.用法 (1)把文件添加到解决方案文件夹...

    js+input日历控件代码及用法

    本资源"js+input时间日历控件代码及用法"提供了实现这一功能的具体代码示例,使得开发者能够轻松地在网页中集成日期选择功能。下面我们将详细探讨这个控件的实现原理、常见用法以及相关的JavaScript知识。 1. **...

    JS日历控件特效代码layDate.zip

    JS日历控件特效代码layDate,非常不错的日历控件,调用也非常简单有两种方式,首先要导入laydate.js 一种是直接使用nclick="laydate()"函数,另一种是通过ID来调用,还是很不错的日历日期控件。

    XP样式日历控件VB源代码

    在使用"XP样式日历控件VB源代码"时,开发者首先需要将提供的XPCalendar文件导入到VB项目中。这可能包括DLL文件、OCX文件或者包含源代码的VB工程文件。导入后,可以在VB工程中添加控件,设置其属性,并编写对应的事件...

    日历控件大集合—各式各样的日历控件

    在IT领域,日历控件是用户界面设计中不可或缺的一部分,尤其在涉及到日期选择、日程安排或时间管理的应用中。日历控件提供了一种直观且用户友好的方式来与日期进行交互。本篇文章将深入探讨日历控件的各种类型、设计...

    口凡网ASP.NET日历控件代码.rar

    "口凡网ASP.NET日历控件代码.rar"这个压缩包中包含了实现这种功能的源码,可以帮助开发者了解并学习如何在自己的项目中创建自定义的日历控件。 首先,ASP.NET日历控件(System.Web.UI.WebControls.Calendar)是一个...

Global site tag (gtag.js) - Google Analytics