/* dayOfWeek.java
*
* Determines day of week given date.
*
* Written by A. James Yolkowski, 5/17/2000.
* Algorithm taken from day_of_week.pl,
* by Malcolm Beattie as posted in comp.lang.perl and in CPAN.
*/
import java.applet.*;
import java.awt.*;
import java.lang.*;
public class dayOfWeek extends Applet {
TextField y, m, d;
Label yLabel, mLabel, dLabel, dayOfWeekLabel;
Button compute;
public void init() {
resize(360, 72);
m = new TextField(2);
d = new TextField(2);
y = new TextField(4);
compute = new Button("Compute");
yLabel = new Label("Year: ");
mLabel = new Label("Month: ");
dLabel = new Label("Date: ");
dayOfWeekLabel = new Label(" ");
add(dLabel); add(d);
add(mLabel); add(m);
add(yLabel); add(y);
add(dayOfWeekLabel);
add(compute);
// add(dayOfWeekLabel);
}
public void paint(Graphics g) {}
public boolean action (Event e, Object O) {
int date, month, year;
int y2;
int dow;
int dinc[] = {0,3,2,5,0,3,5,1,4,6,2,4};
String day[] = {"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"};
String tempstr;
// Parse the numbers from the day, month, and year fields.
if(e.target instanceof Button) {
tempstr = "0";
tempstr = tempstr.concat(d.getText());
date = Integer.parseInt(tempstr);
tempstr = "0";
tempstr = tempstr.concat(m.getText());
month = Integer.parseInt(tempstr);
tempstr = "0";
tempstr = tempstr.concat(y.getText());
year = Integer.parseInt(tempstr);
y2 = year;
if (month < 3) y2--; // Account for leap years.
dow = (y2 + (y2/4) - (y2/100) + (y2/400) + dinc[month-1] + date) %7;
tempstr = "is a ";
tempstr = tempstr.concat(day[dow]);
dayOfWeekLabel.setText(tempstr);
}
return true;
}
}