利用DateFormat、Date、Calendar等相关类,编程实现如下功能:(1)用户输入2个日期,第一个日期用整数形式输入,把输入的整数设置为日历对象1的年月日的值。第二个日期以字符串形式输入,

package com.UtilityClass;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.logging.SimpleFormatter;

public class CompareDate {
    public static void main(String[] args) throws ParseException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入第一个年,月,日数据");
        System.out.print("输入年份:");
        short yearOne = scanner.nextShort();
        System.out.print("输入月份:");
        byte monthOne = scanner.nextByte();
        System.out.print("输入日期:");
        byte dayOne = scanner.nextByte();
        System.out.println("第一年日期为:"+yearOne+"年"+monthOne+"月"+dayOne+"日");
        System.out.print("输入第二个年,月,日数据:");
        //接收键盘输入的string类型的时间格式
        String x= scanner.next();
        //将字符串转为Date类型,格式不能乱写,要和字符串输入格式一致
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        //将数据格式传入到datetime中
        Date date2 = sdf.parse(x);
        //指定日期以相应字符串输出格式
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd");
        String datetime2 = sdf2.format(date2);
        System.out.println("第二年日期为:"+datetime2);


        //实例化日历对象
        Calendar calendar  = Calendar.getInstance();


        //将第一个输入的日期转为日期
        calendar.set(yearOne,monthOne-1,dayOne);


        //将日期转为date对象,此时是有小时,分钟的
        Date date1= calendar.getTime();
        //将date数据按string类型保存,只保存年,月,日
        String date=sdf.format(date1);
        //将string类型变为date类型
        Date date3 = sdf.parse(date);

        //将星期一设为一个星期的第一天,默认星期天是第一天
        calendar.setFirstDayOfWeek(2);
        //将第二个日期转化为日历对象中
        calendar.setTime(date2);
        System.out.println(datetime2+"是该年的第"+calendar.get(Calendar.WEEK_OF_YEAR)+"周");//获取是一年中的第几周
        System.out.println(datetime2+"是该年的第"+calendar.get(Calendar.DAY_OF_YEAR)+"天");//获取是一年中的第几天

        if (date3.compareTo(date2)==0)
            System.out.println("两个日期的年、月、日完全相同,是同一天");
       else if (date3.compareTo(date2)>0){
           System.out.println("您输入的第一个日期大于第二个日期");
        long d=  (date3.getTime() - date2.getTime()) / (1000 * 60 * 60 * 24);
        System.out.println(yearOne+"年"+monthOne+"月"+dayOne+"日与"+datetime2+"相隔"+d+"天");
       }
       else if (date3.compareTo(date2)<0) {
            System.out.println("您输入的第一个日期小于第二个日期");
            long d=  (date2.getTime() - date3.getTime()) / (1000 * 60 * 60 * 24);
            System.out.println(yearOne + "年" + monthOne + "月" + dayOne + "日与" + datetime2 + "相隔" + d + "天");
        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值