62,615
社区成员
发帖
与我相关
我的任务
分享
import javax.swing.JOptionPane;
public class JudgeDate {
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;
}
}
网上搜了下这个算法,实在是没看明白,但给你改了下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;
}