亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java怎么設置每天固定時間

小億
169
2023-10-26 16:22:04
欄目: 編程語言

在Java中設置每天固定時間可以使用Java的定時任務工具類,如Timer和ScheduledExecutorService。

使用Timer類可以在指定時間執行某個任務。以下是一個示例代碼:

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class DailyTask {
    public static void main(String[] args) {
        // 創建一個Timer實例
        Timer timer = new Timer();

        // 獲取當前時間
        Calendar currentTime = Calendar.getInstance();
        currentTime.setTime(new Date());

        // 設置每天固定時間的小時和分鐘
        int hour = 9;
        int minute = 0;

        // 設置任務執行時間
        Calendar scheduledTime = Calendar.getInstance();
        scheduledTime.set(Calendar.HOUR_OF_DAY, hour);
        scheduledTime.set(Calendar.MINUTE, minute);
        scheduledTime.set(Calendar.SECOND, 0);

        // 如果當前時間已經超過了設定的時間,則將執行時間設置為明天的同一時間
        if (currentTime.after(scheduledTime)) {
            scheduledTime.add(Calendar.DATE, 1);
        }

        // 計算任務首次執行的延遲時間
        long delay = scheduledTime.getTimeInMillis() - currentTime.getTimeInMillis();

        // 創建一個定時任務
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                // 在這里定義每天固定時間要執行的任務
                System.out.println("任務執行時間:" + new Date());
            }
        };

        // 啟動定時任務
        timer.schedule(task, delay, 24 * 60 * 60 * 1000);
    }
}

使用ScheduledExecutorService類也可以實現每天固定時間的任務調度。以下是一個示例代碼:

import java.time.LocalTime;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class DailyTask {
    public static void main(String[] args) {
        // 創建一個ScheduledExecutorService實例
        ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);

        // 設置每天固定時間的小時和分鐘
        int hour = 9;
        int minute = 0;

        // 獲取當前時間
        LocalTime currentTime = LocalTime.now();

        // 計算任務首次執行的延遲時間
        long initialDelay = LocalTime.of(hour, minute).toSecondOfDay() - currentTime.toSecondOfDay();
        if (initialDelay < 0) {
            initialDelay += 24 * 60 * 60; // 添加一天的秒數
        }

        // 創建一個定時任務
        Runnable task = () -> {
            // 在這里定義每天固定時間要執行的任務
            System.out.println("任務執行時間:" + LocalTime.now());
        };

        // 啟動定時任務
        scheduler.scheduleAtFixedRate(task, initialDelay, 24 * 60 * 60, TimeUnit.SECONDS);
    }
}

上述代碼中,使用LocalTime類來表示時間,計算任務首次執行的延遲時間,以及在任務中獲取當前時間。使用ScheduledExecutorService的scheduleAtFixedRate方法來啟動定時任務,并指定任務的首次執行延遲時間和執行周期。

0
庆城县| 宜丰县| 宣恩县| 皮山县| 南投市| 兖州市| 丹棱县| 江西省| 饶阳县| 陇南市| 邹平县| 孝义市| 监利县| 石家庄市| 治多县| 南漳县| 乌苏市| 永定县| 格尔木市| 利辛县| 梁平县| 呼图壁县| 锡林浩特市| 黎川县| 延川县| 文化| 五大连池市| 白水县| 宽甸| 博湖县| 扎鲁特旗| 济源市| 高邮市| 葫芦岛市| 金华市| 桦南县| 朝阳县| 香河县| 加查县| 潢川县| 康平县|