You are here: irt.org | Articles | JavaScript | Date and Time | Monday's child is full of grace [ previous next ]
Published on: Saturday 18th October 1997 By: Martin Webb
<HTML><HEAD> <SCRIPT LANGUAGE="JavaScript"><!-- function y2k(number) { return (number < 1000) ? number + 1900 : number; } var today = new Date(); var year = y2k(today.getYear()); var month = today.getMonth()+1; var day = today.getDate(); var thisYear = year; var thisMonth = month; var thisDay = day; //--></SCRIPT> <FRAMESET ROWS="50%,50%"> <FRAME SCROLLING=NO FRAMEBORDER=0 BORDER=0 NORESIZE SRC="input.htm"> <FRAME SCROLLING=YES FRAMEBORDER=0 BORDER=0 NORESIZE SRC="blank.htm" NAME="outputFrame"> </FRAMESET> </HEAD></HTML>
<BODY></BODY>
<HTML><HEAD> <SCRIPT LANGUAGE="JavaScript"><!-- function makeArray() { this[0] = makeArray.arguments.length; for (i = 0; i<makeArray.arguments.length; i++) this[i+1] = makeArray.arguments[i]; } var daysofmonth = new makeArray( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var daysofmonthLY = new makeArray( 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); var monthsofyear = new makeArray('January','February','March','April','May','June','July','August','September','October','November','December'); function LeapYear(year) { if ((year/4) != Math.floor(year/4)) return false; if ((year/100) != Math.floor(year/100)) return true; if ((year/400) != Math.floor(year/400)) return false; return true; } function ValidDate(day,month,year) { if ( (LeapYear(year) && (day > daysofmonthLY[month])) || (!LeapYear(year) && (day > daysofmonth[month])) ) return false; else return true; } function ChosenDate(object) { year = object.year.value; month = object.month.options[object.month.selectedIndex].value; day = object.day.options[object.day.selectedIndex].value; if (!ValidDate(day-0,month-0,year-0)) { alert('You must enter a valid date'); return false; } if (parent.location.href != window.location.href) { parent.year = year; parent.month = month; parent.day = day; parent.outputFrame.location.href = 'output.htm'; } else { return true; } return false; } function y2k(number) { return (number < 1000) ? number + 1900 : number; } function padout(number) { return (number < 10) ? '0' + number : number; } var today = new Date(); var thisYear = y2k(today.getYear()); var thisMonth = today.getMonth()+1; var thisDay = today.getDate(); var dayOutput = ''; for (var days=1; days <= 31; days++) { if (days == thisDay) dayOutput += '<OPTION VALUE="' + padout(days) + '" SELECTED>' + days; else dayOutput += '<OPTION VALUE="' + padout(days) + '">' + days; } var monthOutput = ''; for (var months=1; months <=12; months++) { if (months == thisMonth) monthOutput += '<OPTION VALUE="' + padout(months) + '" SELECTED>' + monthsofyear[months]; else monthOutput += '<OPTION VALUE="' + padout(months) + '">' + monthsofyear[months]; } var yearOutput = '<INPUT TYPE="TEXT" NAME="year" SIZE="4" VALUE="' + thisYear + '">'; //--></SCRIPT> </HEAD> <BODY><FONT FACE="ARIAL,HELVETICA"><CENTER> <H2>Select your date of birth:</H2> <FORM NAME="inputDateForm" ACTION="output.htm" onSubmit="return ChosenDate(document.inputDateForm);"> Day: <SELECT NAME="day"> <SCRIPT LANGUAGE="JavaScript"><!-- document.write(dayOutput); //--></SCRIPT> </SELECT> Month: <SELECT NAME="month"> <SCRIPT LANGUAGE="JavaScript"><!-- document.write(monthOutput); //--></SCRIPT> </SELECT> Year: <SCRIPT LANGUAGE="JavaScript"><!-- document.write(yearOutput); //--></SCRIPT> <INPUT TYPE="SUBMIT" VALUE="Show"> </FORM> <A HREF="index.htm" TARGET="_parent">Return</A> </CENTER></FONT></BODY> </HTML>
<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"><!-- function y2k(number) { return (number < 1000) ? number + 1900 : number; } function makeArray() { this[0] = makeArray.arguments.length; for (i = 0; i<makeArray.arguments.length; i++) this[i+1] = makeArray.arguments[i]; } var daysofweek = new makeArray('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); var child = new makeArray('is bonny and blithe and good and gay', 'is full of grace', 'is fair of face', 'is full of woe', 'has far to go', 'is loving and giving', 'works hard for a living'); var monthsofyear = new makeArray('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); function DayOfWeek(day,month,year) { var a = Math.floor((14 - month)/12); var y = year - a; var m = month + 12*a - 2; var d = (day + y + Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400) + Math.floor((31*m)/12)) % 7; return d+1; } function Child(dayofweek) { return daysofweek[dayofweek] + '\'s child ' + child[dayofweek]; } function Nths(day) { if (day == 1 || day == 21 || day == 31) return 'st'; if (day == 2 || day == 22) return 'nd'; if (day == 3 || day == 23) return 'rd'; return 'th'; } function FullDate(day,month,year) { return daysofweek[DayOfWeek(day,month,year)] +' '+ day + Nths(day) +' '+ monthsofyear[month] +' '+ year; } if (location.search.length == 0) { var year = parent.year - 0; var month = parent.month - 0; var day = parent.day - 0; } else { var day = location.search.substring(5,7) - 0; var month = location.search.substring(14,16) - 0; var year = location.search.substring(22) - 0; } var today = new Date(); var thisYear = y2k(today.getYear()); var thisMonth = today.getMonth()+1; var thisDay = today.getDate(); //--></SCRIPT> </HEAD> <BODY><CENTER> <SCRIPT LANGUAGE="JavaScript"><!-- document.write('Todays Date: '+thisDay+'/'+thisMonth+'/'+thisYear+'<BR>'); document.write('Full date: '+FullDate(thisDay,thisMonth,thisYear)+'<BR>'); document.write('Date Entered: '+day+'/'+month+'/'+year+'<BR>'); document.write('Full date: '+FullDate(day,month,year)+'<BR>'); document.write(Child(DayOfWeek(day,month,year))+'<BR>'); //--></SCRIPT> <A HREF="index.htm" TARGET="_parent">Return</A> </CENTER></BODY> </HTML>
And now...The Weekly Update Script