描述
第二题,婷婷的日历计算。婷婷总是忘记几天后该干什么,因此朋友给她说几天后的安排后,她需要将日期换算出来,写入日历里。你需要帮婷婷实现一个日历计算器,这个日历计算器不仅可以计算未来的日期,还可以计算过去的日期。例如今天是2000年1月1日,10日后(记作10)是2000年1月11日,1999年12月30日是2天前(记作-2)。 注意:此题请不要使用Python
输入描述
输入包含两行: 第一行为3个整数,代表今日的日期(公历),按照年月日给出。 第二行为一个整数 t,若为正数,即需要你帮忙求出t天后的日期;若为负数,即需要你帮忙求出 Abs(t) 天前的日期。 第三行为3个整数,按照年月日给出,代表需要求解这天和今天的关系,如果这一天在今天之后,请输出距离今天的天数,结果应该为一个正数;如果这一天在今天之前,请输出距离今天的天数,结果应该为一个负数。输入数据和结果保证均合法,且在2018年1月1日的前后两千年内。
输出描述
输出包含两行: 第一行为三个数,用空格隔开,为所求解的日期。 第二行为一个数,输出给定日期距离今天的天数。
样例输入 1
2018 3 31
1
2018 3 1
样例输出 1
2018 4 1
-30
样例输入 2
2000 1 1
10000
1000 1 1
样例输出 2
2027 5 19
-365242
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
int month = sc.nextInt();
int day = sc.nextInt();
String date1 = String.valueOf(year)+"-"+String.valueOf(month)+"-"+String.valueOf(day);
int count =sc.nextInt();
int year1 = sc.nextInt();
int month1 = sc.nextInt();
int day1 = sc.nextInt();
String date2 = String.valueOf(year1)+"-"+String.valueOf(month1)+"-"+String.valueOf(day1);
//是哪个日期
SimpleDateFormat sdff = new SimpleDateFormat("yyyy-MM-dd");
// 将字符串的日期转为Date类型,ParsePosition(0)表示从第一个字符开始解析
Date date_1 = sdff.parse(date1, new ParsePosition(0));
Date date_2 = sdff.parse(date2, new ParsePosition(0));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date_1);
// add方法中的第二个参数n中,正数表示该日期后n天,负数表示该日期的前n天
calendar.add(Calendar.DATE, count);
Date cout_date1 = calendar.getTime();
String out = sdff.format(cout_date1);
System.out.println(out);
//距离多少天
long s1=date_1.getTime();
long s2=date_2.getTime();
long day_count=(s2-s1)/1000/60/60/24;
System.out.println(day_count);
}
}