一个日期前后几天的日期,一个日期距离另一个日期多少天

描述

第二题,婷婷的日历计算。婷婷总是忘记几天后该干什么,因此朋友给她说几天后的安排后,她需要将日期换算出来,写入日历里。你需要帮婷婷实现一个日历计算器,这个日历计算器不仅可以计算未来的日期,还可以计算过去的日期。例如今天是2000年1月1日,10日后(记作10)是2000年1月11日,1999年12月30日是2天前(记作-2)。 注意:此题请不要使用Python

输入描述

输入包含两行: 第一行为3个整数,代表今日的日期(公历),按照年月日给出。 第二行为一个整数 t,若为正数,即需要你帮忙求出t天后的日期;若为负数,即需要你帮忙求出 Abs(t) 天前的日期。 第三行为3个整数,按照年月日给出,代表需要求解这天和今天的关系,如果这一天在今天之后,请输出距离今天的天数,结果应该为一个正数;如果这一天在今天之前,请输出距离今天的天数,结果应该为一个负数。输入数据和结果保证均合法,且在2018年1月1日的前后两千年内。

输出描述

输出包含两行: 第一行为三个数,用空格隔开,为所求解的日期。 第二行为一个数,输出给定日期距离今天的天数。

样例输入

2018 3 31

1

2018 3 1

样例输出 1

2018 4 1

-30

样例输入

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);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值