几个简单的java时间函数作业

1. 编写程序实现分时问候

   Date d = new Date();
        int h = d.getHours();
        System.out.print("尊敬的先生(女士) ");
        if (h >= 6 && h < 8) {
            System.out.println("早上好");
        } else if (h >= 8 && h < 12) {
            System.out.println("上午好");
        } else if (h >= 12 && h < 14) {
            System.out.println("中午好");
        } else if (h >= 14 && h < 18) {
            System.out.println("下午好");
        } else if (h >= 18 && h < 24) {
            System.out.println("晚上好");
        } else {
            System.out.println("凌晨注意休息");
        }
        System.out.print("现在时间:");
        var f=new SimpleDateFormat(" yyyy 年 MM 月 dd 日E HH 点 mm 分 ss 秒");
        System.out.println(f.format(d));

2. 编写程序输出是星期几

public class Tian {
    public static void main(String []args)
    {
        Scanner cin=new Scanner(System.in);
        System.out.println("请输入年,月,日:");
        while(cin.hasNext())
        {
            int year=cin.nextInt();
            int month=cin.nextInt();
            int day=cin.nextInt();
            GregorianCalendar gre=new GregorianCalendar();
            Date date=new Date(year-1900,month-1,day);
            System.out.println(date);

            gre.setTime(date);
            int weekday=gre.get(Calendar.DAY_OF_WEEK)-1;
            String []s={"星期天","星期一","星期二","星期三","星期四","星期五","星期六",};
            System.out.println(year+" "+month+" "+day+" "+s[weekday]);
        }

    }

}

3. 编写程序输出 xxxxxxxx xx:xx:xx 星期几

public class Shijian {
    public static void main(String[] args) {
    var not=new Date();
        System.out.println(not);
    var f=new SimpleDateFormat("今天是"+" yyyy 年 MM 月 dd 日E HH 点 mm 分 ss 秒");
        System.out.println(f.format(not));
    }
}

4. 计算两个日期之间的天数(两种方法均可以)

public class Tian3 {
    public static void main(String[] args) {

//        Date a1=new Date(2001-1900,1-1,1);
//        Date a2=new Date();
//        System.out.println(a1);
//       long b1= a1.getTime();
//       long b2= a2.getTime();
//       long b3=b2-b1;
//        System.out.println("生存的第"+b3/(1000*60*60*24)+"天");

        LocalDateTime a = LocalDateTime.of(2001,1,1,8,0,0);
        LocalDateTime b = LocalDateTime.now();
        long days = ChronoUnit.DAYS.between(a,b);
        System.out.printf("%tF %<tT 到 %tF %<tT 之间有 %d 天",a,b,days);
    }
}

5. 计算n天前,n天后日期

public class Tian2 {
    public static void main(String[] args) {
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        calendar1.add(Calendar.DATE, -5);
        calendar2.add(Calendar.DATE, +10);
        String a = sdf1.format(calendar1.getTime());
        String b = sdf1.format(calendar2.getTime());
        System.out.println(a);
        System.out.println(b);
    }
}

这里以5天前和10天后为例。

6. 生成指定范围的随机日期对象2000-01-01 000000 - now(三种方法均可以)

public class Random1 {
    public static void main(String[] args) {
     Date a1=new Date(2000-1900,1-1,1,0,0,0);
     Date a2=new Date();
     long m1=a1.getTime();
     long m2=a2.getTime();
     Random rand=new Random();
        for (int i = 0; i < 10; i++) {
            var time = rand.nextLong(m1,m2);
            System.out.printf("%tF %<tT%n", time);
        }



//        Calendar n1=Calendar.getInstance();
//        n1.set(2000,1-1,1,0,0,0);
//        Calendar n2=Calendar.getInstance();
//        Random rand=new Random();
//        for (int i = 0; i < 10; i++) {
//            var time=rand.nextLong(n1.getTimeInMillis(), n2.getTimeInMillis());
//            System.out.printf("%tF %<tT%n",time);


//        var d1 = LocalDateTime.of(2001, 1, 1, 0, 0, 0);
//        var d2 = LocalDateTime.now();
//        Random rand = new Random();
//        long l = d1.toInstant(ZoneOffset.of("+8")).toEpochMilli();
//        long l2 = d2.toInstant(ZoneOffset.of("+8")).toEpochMilli();
//
//        for (int i = 0; i < 10; i++) {
//            var time = rand.nextLong(l,l2);
//            System.out.printf("%tF %<tT%n", time);
//        }
    }

感谢大家,希望能给大家带来帮助

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值