有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在当前时间和下周六之间还有剩余的分钟/小时吗?

我已经在一天的大部分时间里查阅了这些文件,但一直无法弄清楚这到底应该怎么做

我希望每周举办一次活动,每周六00:00到周一00:00(48小时)

public static void scheduleEvent() {
    ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);       

    Long saturdayMidnight = LocalDateTime.now().until(LocalDateTime.now().plusMinutes(1/* ??? */), ChronoUnit.MINUTES);
    scheduler.scheduleAtFixedRate(new EventTimer(), saturdayMidnight, TimeUnit.DAYS.toMinutes(1), TimeUnit.MINUTES);
}

作为测试,我将其设置为等待一分钟,直到调用EventTimer类。这是按计划进行的,但我如何计算当前时间和周六午夜之间的剩余分钟或小时数,然后在计划程序中使用这些分钟或小时数在每个周末的正确时间启动活动

至于副本,我不是想得到即将到来的星期六的日期,我只是想得到当前时间和即将到来的星期六之间的分钟/小时数。不过,如果能通过约会来实现,我不介意


共 (1) 个答案

  1. # 1 楼答案

    下面是一个片段,可以获取“下周六,午夜”LocalDateTime实例,以及在此之前的小时和分钟

    // getting next saturday midnight
    LocalDateTime nextSaturdayMidnight = LocalDateTime.now()
        // truncating to midnight
        .truncatedTo(ChronoUnit.DAYS)
        // adding adjustment to next saturday
        .with(TemporalAdjusters.next(DayOfWeek.SATURDAY));
    
    // getting hours until next saturday midnight
    long hoursUntilNextSaturdayMidnight = LocalDateTime.now()
        // getting offset in hours
        .until(nextSaturdayMidnight, ChronoUnit.HOURS);
    
    // getting minutes until...
    long minutesUntilNextSaturdayMidnight = LocalDateTime.now()
        // getting offset in minutes
        .until(nextSaturdayMidnight, ChronoUnit.MINUTES);
    

    在撰写本文时(8月14日14:02),这三个变量应该如下所示:

    2018-08-18T00:00
    81
    4917