SDate部分:
class SDate {
public static int accountDays(int year,int month) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
if(isLeap(year))
return 29;
else return 28;
default:
return 30;
}
}
public static boolean isLeap(int year) {
if (year%4 == 0 && year%100 != 0)
return true;
else if (year%100 == 0 && year%400 == 0)
return true;
else
return false;
}
public static int fixDay(int year,int month) {
int base_year = 1;
int[] base_month = {0,0,3,3,6,1,4,0,3,5,0,3,5};
if (isLeap(year)) {
base_year++;
for (int i = 3; i<=6; i++) {
base_month[i] += 1;
if (base_month[i] == 7) {
base_month[i] = 0;
}
}
for (int i = 9; i <= 12; i++) {
base_month[i] += 1;
if (base_month[i] == 7) {
base_month[i] = 0;
}
}
}
return (year+year/4+year/400-year/100-base_year+base_month[month]+1)%7;
}
}
DateGrid部分:
import Javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.util.*;
public class DateGrid extends JWindow implements ActionListener {
//DateGrid的構造方法
public DateGrid() {
super();
this.design();
}