利用DateFormat、Date、Calendar等相关类,编程实现如下功能

(1)用户输入2个日期,第一个日期用整数形式输入,把输入的整数设置为日历对象1的年月日的值。第二个日期以字符串形式输入,形如“2022-10-25”,并设置为日历对象2的年月日的值。将2个日期以“xx年xx月xx日”的格式输出。

(2)程序判断并输出第二个日期表示的时间是该年度第几周、第几天;

(3)判断并输出2个日期的大小关系,以及2个日期之间的间隔天数。

源代码:

CompareDate

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("yyyyMMdd");

        String datetime2 = sdf2.format(date2);

        System.out.println("第二年日期为:"+datetime2);

        //实例化日历对象

        Calendar calendar  = Calendar.getInstance();

        //将第一个输入的日期转为日期

        calendar.set(yearOne,monthOne-1,dayOne);

        //将日期转为date对象

        //将日期转为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 + "");

        }

    }

}

实验运行截图:

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值