Files
basic-computer-games/21_Calendar/javascript/calendar.js
Chris Reuter d26dbf036a Removed spaces from top-level directory names.
Spaces tend to cause annoyances in a Unix-style shell environment.
This change fixes that.
2021-11-21 18:30:21 -05:00

90 lines
1.9 KiB
JavaScript

// CALENDAR
//
// Converted from BASIC to Javascript by Oscar Toledo G. (nanochess)
//
function print(str)
{
document.getElementById("output").appendChild(document.createTextNode(str));
}
function tab(space)
{
var str = "";
while (space-- > 0)
str += " ";
return str;
}
print(tab(32) + "CALENDAR\n");
print(tab(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n");
print("\n");
print("\n");
print("\n");
// 0, 31, 29 ON LEAP YEARS
var m = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// VALUES FOR 1979 - SEE NOTES
for (i = 1; i <= 6; i++)
print("\n");
d = -1; // 1979 starts on Monday (0 = Sun, -1 = Monday, -2 = Tuesday)
s = 0;
for (n = 1; n <= 12; n++) {
print("\n");
print("\n");
s = s + m[n - 1];
str = "**" + s;
while (str.length < 7)
str += " ";
for (i = 1; i <= 18; i++)
str += "*";
switch (n) {
case 1: str += " JANUARY "; break;
case 2: str += " FEBRUARY"; break;
case 3: str += " MARCH "; break;
case 4: str += " APRIL "; break;
case 5: str += " MAY "; break;
case 6: str += " JUNE "; break;
case 7: str += " JULY "; break;
case 8: str += " AUGUST "; break;
case 9: str += "SEPTEMBER"; break;
case 10: str += " OCTOBER "; break;
case 11: str += " NOVEMBER"; break;
case 12: str += " DECEMBER"; break;
}
for (i = 1; i <= 18; i++)
str += "*";
str += (365 - s) + "**";
// 366 - s on leap years
print(str + "\n");
print(" S M T W T F S\n");
print("\n");
str = "";
for (i = 1; i <= 59; i++)
str += "*";
for (week = 1; week <= 6; week++) {
print(str + "\n");
str = " ";
for (g = 1; g <= 7; g++) {
d++;
d2 = d - s;
if (d2 > m[n]) {
week = 6;
break;
}
if (d2 > 0)
str += d2;
while (str.length < 4 + 8 * g)
str += " ";
}
if (d2 == m[n]) {
d += g;
break;
}
}
d -= g;
print(str + "\n");
}