用户输入一个日期-----计算三年三个月三天后的那个星期的周三是几号
思路如下:
/**
* 1.创建Scanner获取用户输入的日期
* 2.字符串变为SimpleDateFormat再转换为Date再转换为Calendar
* 3.计算时间,将Calendar转换为Date,再转化为字符串
* 4.输出
*
*/
代码如下:
public class CalendarDemo8 {
public static void main(String[] args) throws ParseException {
Scanner scan = new Scanner(System.in);
System.out.println("请输入日期");
String input = scan.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(input);//转换为Date
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);//转换为Calendar
calendar.add(Calendar.YEAR, 3);
calendar.add(Calendar.MONTH, 3);
calendar.add(Calendar.DAY_OF_YEAR, 3);
calendar.set(Calendar.DAY_OF_WEEK, 4);
date = calendar.getTime();
String output = sdf.format(date);
System.out.println(output);
}
}
测试结果如下:
请输入日期
2014-09-24
2017-12-27
/**
* 输出2020年每个月的天数
* @author Administrator
*
*/
public class CalendarDemo9 {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2016);//设置为2020年
for(int i=0;i<12;i++){
c.set(Calendar.MONTH, i);
int days = c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("2020年"+(i+1)+"月有"+days+"天");
}
int totalDays = c.getActualMaximum(Calendar.DAY_OF_YEAR);
System.out.println("2016年一共有:"+totalDays+"天");
}
}
测试结果如下:
2020年11月有30天
2020年12月有31天
2016年一共有:366天