问题一:2028年的2月一共有多少天?
思路:
定义日期到2028年的3月1日,将日期向前推一天,即可。
注意:Java中月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月
代码示例
package DateTest;
import java.util.Calendar;
public class GetDays {
public static void main(String[] args) {
int year = 2028;
showDays(year);
}
public static void showDays(int year) {
Calendar c = Calendar.getInstance();
c.set(year, 2, 1);
c.add(Calendar.DAY_OF_MONTH, -1);
showDate(c);
}
public static void showDate(Calendar c) {
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
System.out.println(year+"年2月有"+day+"天");
}
public static String getWeek(int i) {
String[] weeks = {"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
return weeks[i];
}
}
运行结果
问题二:去年的今天是哪一天?
思路:
获取当前日期,将日期向前推一年
代码示例
package DateTest;
import java.util.Calendar;
public class GetDate {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR, -1);
showDate(c);
}
public static void showDate(Calendar c) {
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println("去年的今天是:");
System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
}
public static String getWeek(int i) {
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return weeks[i];
}
}
运行结果: