package org.wcs.utils;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

/**
 * 时间工具类
 */
public class AppTimeUtils {

    /**
     * 格式化时长
     * @param uptimeMillis 时长
     * @return 格式化后的时长
     */
    public static String formatDuration(long uptimeMillis) {
        long seconds = uptimeMillis / 1000;
        long days = seconds / (3600 * 24);
        long hours = (seconds % (3600 * 24)) / 3600;
        long minutes = (seconds % 3600) / 60;
        return String.format("%d天%d小时%d分钟", days, hours, minutes);
    }

    /**
     * 格式化时间
     * @param localDateTime 时间
     * @return 格式化后的时间
     */
    public static String formatLocalDatetime(LocalDateTime localDateTime) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        return localDateTime.format(formatter);
    }

    /**
     * 格式化时间
     * @param localDate 时间
     * @param pattern 格式
     * @return 格式化后的时间
     */
    public static String formatLocalDatetime(LocalDate localDate, String pattern) {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return localDate.format(formatter);
    }

    /**
     * 获取今天结束时间
     * @return 今天结束时间
     */
    public static LocalDateTime getTodayEndTime() {
        return LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
    }

    /**
     * 获取今天开始时间
     * @return 今天开始时间
     */
    public static LocalDateTime getTodayStartTime() {
        return LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
    }
}
