何必要再造轮子,有现成的Calendar就要用啊!
static String getWeekday(Date date) {
String weekday = "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int week = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(week);
switch (week) {
case 1:
weekday = "星期日";
break;
case 2:
weekday = "星期一";
break;
case 3:
weekday = "星期二";
break;
case 4:
weekday = "星期三";
break;
case 5:
weekday = "星期四";
break;
case 6:
weekday = "星期五";
break;
case 7:
weekday = "星期六";
break;
}
return weekday;
}
static String getWeekday(Date date) {
String weekday = "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int week = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(week);
switch (week) {
case 1:
weekday = "星期日";
break;
case 2:
weekday = "星期一";
break;
case 3:
weekday = "星期二";
break;
case 4:
weekday = "星期三";
break;
case 5:
weekday = "星期四";
break;
case 6:
weekday = "星期五";
break;
case 7:
weekday = "星期六";
break;
}
return weekday;
}
public static void main(String[] args) {
String dataYearString = JOptionPane
.showInputDialog("Please enter the year(e.g., 2008): ");
int dataYear = Integer.parseInt(dataYearString);
String dataMonthString = JOptionPane
.showInputDialog("Please enter the month: 1-12: ");
int dataMonth = Integer.parseInt(dataMonthString);
String dataDayString = JOptionPane
.showInputDialog("Please enter the day of the month: 1-31: ");
int dataDay = Integer.parseInt(dataDayString);
int dataDate = dateJudging(dataYear, dataMonth, dataDay);
JOptionPane.showMessageDialog(null, "Day of the week is "
+ dateConvert(dataDate));
} public static int dateJudging(int dataYear, int dataMonth, int dataDay) {
int q = 0;
int m = 0;
int j = 0;
int k = 0;
int h = 0;
int y = dataYear;
m=dataMonth;
/* set q */
q = dataDay;
/* set m and year */
if ((dataMonth == 1) || (dataMonth == 2)) {
m = dataMonth + 12;
y -= 1;
}
/** set j */
j = (int) (y / 100);
/** set k */
k = y % 100;
/** compute h */
h = (q + (int) (26 * ((m + 1) / 10)) + k + (int) (k / 4) + (int) (j / 4) + (5 * j)) % 7 - 1;
return h;
} public static String dateConvert(int dataDate) {
String dateString = "";
if (dataDate == 0)
dateString = "Saturday";
else if (dataDate == 2)
dateString = "Monday";
else if (dataDate == 3)
dateString = "Tuesday";
else if (dataDate == 4)
dateString = "Wedensday";
else if (dataDate == 5)
dateString = "Thursday";
else if (dataDate == 6)
dateString = "Friday";
else if (dataDate == 1)
dateString = "Sunday";
return dateString;
}
}网上搜了下这个算法,实在是没看明白,但给你改了下
楼上的这位改了那个地方啊....
中文译本里有一行是这么写的——“q是某月的天数”
而在我们专业发的英语原版里——“q is the day of the month” 而不是 “q is number ofdays in the month ”所以 q 应该直接等于 我们输入的 那一天就好了!