|
 |
|
|
10-15-2007, 01:00 PM
|
Yearly Calendar
|
Posts: 20
Name: Levi
|
I have to make a yearly calendar for a class and I wrote the script out and I am just kind of lost with the logic I think because I'm missing something. All of my months are title December and the first day of the months don't change. Any help would be appreciated. Scroll down a bit, I added a comment in for where I started coding and where it was already given to me.
Code:
function writeMonth(calendarDay, currentTime) {
document.write("<table class='monthly_table'>");
writeMonthTitle(calendarDay);
writeDayNames()
writeMonthDays(calendarDay, currentTime);
document.write("</table>");
}
function writeMonthTitle(calendarDay) {
var monthName = new Array("January", "February", "March", "April", "May",
"June", "July", "August", "September", "October", "November", "December");
var thisMonth=calendarDay.getMonth();
document.write("<tr>");
document.write("<th class='monthly_title' colspan='7'>");
document.write(monthName[thisMonth]);
document.write("</th>");
document.write("</tr>");
}
function writeDayNames() {
var dayName = new Array("S","M","T","W","T","F","S");
document.write("<tr>");
for (var i=0;i<dayName.length;i++) {
document.write("<th class='monthly_weekdays'>"+dayName[i]+"</th>");
}
document.write("</tr>");
}
function daysInMonth(calendarDay) {
var thisYear = calendarDay.getFullYear();
var thisMonth = calendarDay.getMonth();
var dayCount = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if ((thisYear % 4 == 0)&&((thisYear % 100 !=0) || (thisYear % 400 == 0))) {
dayCount[1] = 29;
}
return dayCount[thisMonth];
}
function writeMonthDays(calendarDay, currentTime) {
var weekDay = calendarDay.getDay();
document.write("<tr>");
for (var i=0; i < weekDay; i++) {
document.write("<td></td>");
}
var totalDays = daysInMonth(calendarDay);
for (var dayCount=1; dayCount<=totalDays; dayCount++) {
calendarDay.setDate(dayCount);
weekDay = calendarDay.getDay();
writeDay(weekDay, dayCount, calendarDay, currentTime);
}
document.write("</tr>");
}
function writeDay(weekDay, dayCount, calendarDay, currentTime) {
if (weekDay == 0) document.write("<tr>");
if (calendarDay.getTime() == currentTime) {
document.write("<td class='monthly_dates' id='today'>"+dayCount+"</td>");
} else {
document.write("<td class='monthly_dates'>"+dayCount+"</td>");
}
if (weekDay == 6) document.write("</tr>");
}
// Begin Assignment, Everything above this was given to me so I assume its right?
function writeMonthCell(calendarDay, currentTime)
{
document.write("<td class=\"yearly_months\">");
writeMonth(calendarDay, currentTime);
document.write("</td>");
}
function yearly(calDate)
{
if (calDate == null)
{
calendarDay = new Date();
}
else
{
calendarDay ="";
}
var currentTime = calendarDay.getTime();
var thisYear = calendarDay.getFullYear();
document.write("<table id=\"yearly_table\">");
document.write("<tr>");
document.write("<th id=\"yearly_title\" colspan=\"4\">");
document.write("</th>");
document.write("</tr>");
var monthNum = (-1);
for (i=1; i<4; i++)
{
document.write("<tr>");
for (j=1; j<5; j++)
{
document.write("<td>");
monthNum = monthNum++;
calendarDay.setTime(1);
calendarDay.setMonth(monthNum);
writeMonthCell(calendarDay, currentTime);
document.write("</td>");
}
document.write("</tr>");
}
document.write("</table>");
}
|
|
|
|
10-19-2007, 10:27 PM
|
Re: Yearly Calendar
|
Posts: 1,712
Name: Jeremy Miller
Location: Las Vegas, NV
|
Replace
HTML Code:
monthNum = monthNum++;
with
You have another problem with the wrapping of the calendar, but this will get you started.
Also, this code was very hard to follow. You may want to consider not having your functions setup so that you have to go 4 levels deep just to get the title of the month. 
__________________
Jeremy Miller
Please login or register to view this content. Registration is FREE
|
|
|
|
10-19-2007, 10:59 PM
|
Re: Yearly Calendar
|
Posts: 1,712
Name: Jeremy Miller
Location: Las Vegas, NV
|
I wrote this to help you:
HTML Code:
<script>
function calendarYear(this_year) {
if (this_year == null) {
this_year_date = new Date();
this_year = this_year_date.getYear();
}
months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
weekdays = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
for (this_month=0;this_month < 12;this_month++) {
calendar_month = new Date(this_year, this_month, 1, 1, 0, 0, 0);
days_in_month_date = new Date(this_year, this_month+1, 1, 1, 0, 0, 0);
days_in_month = new Date(days_in_month_date.getTime() - 5*60*60*1000);
document.write('<table class="calendar_month" border="1">');
document.write('<tr><th colspan="7" align="center">'+months[this_month]+' '+calendar_month.getFullYear()+'</th></tr>');
document.write('<tr><th>Sunday</th><th>Monday</th><th>Tuesday</th><th>Wednesday</th><th>Thursday</th><th>Friday</th><th>Saturday</th></tr>');
current_weekday=0;
for (day_of_month=1;day_of_month<=days_in_month.getDate();day_of_month++) {
if ((day_of_month+calendar_month.getDay()-1)%7 == 0) {
document.write('<tr>');
}
if (day_of_month == 1 && current_weekday < calendar_month.getDay()) {
for (empty_cells=0;empty_cells < calendar_month.getDay();empty_cells++) {
document.write('<td> </td>');
current_weekday++;
}
}
document.write('<td>'+day_of_month+'</td>');
if ((day_of_month+calendar_month.getDay())%7 == 0) {
document.write('</tr>');
}
}
document.write('</table>');
}
}
calendarYear(2007);
</script>
__________________
Jeremy Miller
Please login or register to view this content. Registration is FREE
|
|
|
|
|
« Reply to Yearly Calendar
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|