日历的代码

echo2002 2003-01-08 02:52:55
好东西,与大家分享一下:
index.htm:
<html>
<head>
<title>桌面日历</title>
<body>
<form name=inputForm method=post>
<b>enter date: </b>
<input type=text value="MM/DD/YYYY" name=date1 size=10>
<a href="#" onclick="window.dateField=document.inputForm.date1; calendar=window.open('calendar.htm','cal','width=200,height=250')">get</a>
</form>
</body>
</html>

calendar.htm(or calendar.jsp):
<html>
<head>
<title>桌面日历</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">


<SCRIPT LANGUAGE="JavaScript">
<!--

function setDate(){

this.dateField = opener.dateField;
this.inDate = dateField.value;

var now = new Date();
var day = now.getDate();
var month = now.getMonth();
var year = now.getYear();

/* if (year<100) {
year+=1900;
}
else {
year+=2000;
}

*/

if (inDate.indexOf('/')){
var inMonth = inDate.substring(0,inDate.indexOf("/"));
if (inMonth.substring(0,1)=="0" && inMonth.length>1)
inMonth=inMonth.substring(1,inMonth.length);
inMonth=parseInt(inMonth);

var inDay=inDate.substring(inDate.indexOf("/")+1,inDate.lastIndexOf("/"));
if (inDay.substring(0,1)=="0" && inDay.length>1)
inDay=inDay.substring(1,inDay.length);
inDay=parseInt(inDay);

var inYear=parseInt(inDate.substring(inDate.lastIndexOf("/")+1,inDate.length));

if (inDay){
day=inDay;
}

if (inMonth){
month=inMonth-1;
}

if (inYear){
year=inYear;
}
}
this.focusDay=day;
document.calControl.month.selectedIndex=month;
document.calControl.year.value=year;
displayCalendar(day,month,year);

}


function setToday(){
var now = new Date();
var day = now.getDate();
var month = now.getMonth();
var year = now.getYear();

// if (year<100) {year+=1900;}
// else {year+=2000;}
this.focusDay=day;
document.calControl.month.selectedIndex=month;
document.calControl.year.value=year;
displayCalendar(day,month,year);
}

function isFourDigitYear(year){
if (year.length !=4){
alert ("sorry, the year must be four-digits in length.");
document.calControl.year.select();
document.calControl.year.focus();
}
else{
return true;
}
}

function selectDate(){
var year = document.calControl.year.value;
if (isFourDigitYear(year)){
var day=0;
var month=document.calControl.month.selectedIndex;
displayCalendar(day,month,year);
}
}

function setPreviousYear(){
var year=document.calControl.year.value;
if (isFourDigitYear(year)){
var day=0;
var month=document.calControl.month.selectedIndex;
year--;
document.calControl.year.value=year;
displayCalendar(day,month,year);
}
}

function setPreviousMonth(){
var year=document.calControl.year.value;
if (isFourDigitYear(year)){
var day=0;
var month=document.calControl.month.selectedIndex;
if (month==0){
month=11;
if (year>1000){
year--;
document.calControl.year.value=year;
}
}
else{
month--;
}
document.calControl.month.selectedIndex=month;
displayCalendar(day,month,year);
}
}

function setNextMonth(){
var year=document.calControl.year.value;
if (isFourDigitYear(year)){
var day=0;
var month=document.calControl.month.selectedIndex;
if (month==11){
month=0;
year++;
document.calControl.year.value=year;
}
else{month++;}
document.calControl.month.selectedIndex=month;
displayCalendar(day,month,year);
}
}

function setNextYear(){
var year=document.calControl.year.value;
if (isFourDigitYear(year)){
var day=0;
var month=document.calControl.month.selectedIndex;
year++;
document.calControl.year.value=year;
displayCalendar(day,month,year);
}
}

function displayCalendar(day,month,year){
day=parseInt(day);
month=parseInt(month);
year=parseInt(year);
var i=0;
var now=new Date();

if (day==0) {
var nowDay=now.getDate();
}
else{
var nowDay=day;
}

var days=getDaysInMonth(month+1,year);
var firstOfMonth=new Date (year,month,1);
var startingPos=firstOfMonth.getDay();
days+=startingPos;

for(i=0;i<startingPos;i++){
document.calButtons.elements[i].value=" ";
}

for (i=startingPos;i<days;i++){
document.calButtons.elements[i].value=i-startingPos+1;
document.calButtons.elements[i].onClick="returnDate";
}

for(i=days;i<37;i++){
document.calButtons.elements[i].value=" ";
}

document.calButtons.elements[focusDay+startingPos-1].focus();
}


function getDaysInMonth(month,year){
var days;
if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) {days=31;}
else if (month==4 || month==6 || month==9 || month==11) {days=30;}
else if (month==2){
if (isLeapYear(year)) {days=29;}
else{days=28;}
}
return (days);
}

function isLeapYear(int_Year){
if (((int_Year % 4) == 0 ) && ((int_Year % 100) != 0) || ((int_Year % 400)==0 )){
return (true);
}
else{
return (false);
}
}

function returnDate(inDay){
var day=inDay;
var month=(document.calControl.month.selectedIndex)+1;
var year=document.calControl.year.value;

if ((""+month).length==1)
{month="0"+month;}
if ((""+day).length==1)
{day="0"+day;}
if (day != " "){
dateField.value=month+"/"+day+"/"+year;
window.close();
}
}
//-->
</SCRIPT>
</head>

...全文
157 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧