Java针对时间的一些计算

发布于:2024-05-01 ⋅ 阅读:(29) ⋅ 点赞:(0)

package utils;

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Common {
    
    public static void main(String[] args) {
        
        System.out.println(get_year_days(2024));
        System.out.println(getYearDays(2200));
        System.out.println(getDaysBetweenTwo());
        getRealEndDate("2024-1-1",1);
        getHoursThisTime();
    }

获取一年的天数
  

 public static int getYearDays(int year) {
        if(isLeapYear(year)) {
            return 366;
        }
        return 365;
    }

判断是否是闰年

    public static boolean isLeapYear(int year) {
        if (year % 4 == 0) {
            if (year % 100 == 0) {
                if (year % 400 == 0) {
                    return true;  // 能够被400整除,是闰年
                } else {
                    return false;  // 能够被100整除但不能被400整除,不是闰年
                }
            } else {
                return true;  // 能够被4整除但不能被100整除,是闰年
            }
        } else {
            return false;  // 不能够被4整除,不是闰年
        }
    }


    
    public static int get_year_days(int year) {
        if(year%400==0) {
            return 366;
        }else {
            if(year%4==0&&year%100==0) {
                return 365;
            }else if(year%4==0&&year%100!=0) {
                return 366;
            }else {
                return 365;
            }
        }
    }


    public static long getDaysBetweenTwo() {
        // 示例日期
        LocalDate date1 = LocalDate.of(2024, 1, 1);
        LocalDate date2 = LocalDate.of(2024, 4, 15);
 
        // 计算两个日期之间的天数
        long daysBetween = ChronoUnit.DAYS.between(date1, date2);
 
        System.out.println("两个日期之间的天数: " + daysBetween);
        return daysBetween;
    }
    
    public static int stringToInt(String date){
        return Integer.parseInt(date);
    }
    public static double stringToDouble(String date){
        return Double.parseDouble(date);
    }

判断两天之间间隔多少天

参数输入格式  2024-04-28
    public static int getDaysBetweenTwoDate(String startDate, String endDate) {
        // 示例日期
        String[] startDateArray = startDate.trim().split("-");
        String[] endDateArray = endDate.trim().split("-");
        LocalDate date1 = LocalDate.of(stringToInt(startDateArray[0]), stringToInt(startDateArray[1]), stringToInt(startDateArray[2]));
        LocalDate date2 = LocalDate.of(stringToInt(endDateArray[0]), stringToInt(endDateArray[1]), stringToInt(endDateArray[2]));
 
        // 计算两个日期之间的天数
        long daysBetween = ChronoUnit.DAYS.between(date1, date2);

        //System.out.println("两个日期之间的天数: " + daysBetween);
        return (int) daysBetween;
    }
    

获取小时


    public static int getHoursThisTime() {
        Date a = new Date();
        //System.out.println(a.getHours());
        return a.getHours();
    }
    
获取两个整数之间的所有整数    

public static List<Integer> getIntegerListBetweenTwoNumber(int start, int end) {
        List<Integer> list = new ArrayList<>();
        for(int i = start; i<=end;i++) {
            list.add(i);
        }
        return list;
    }

double类型数据取2位小数    

public static double get_double_round(double float_value) {
        return (double)(Math.round(float_value*100))/100;
    }

    获取某个时间的前一天
  

 public  static String getRealEndDate(String endDate, int flag) {
        if(flag==0) return endDate;
        String[] endDateArray = endDate.trim().split("-");
        LocalDate date = LocalDate.of(stringToInt(endDateArray[0]), stringToInt(endDateArray[1]), stringToInt(endDateArray[2])).minusDays(1);
        String v =  date.getYear()+"-"+date.getMonthValue()+"-"+date.getDayOfMonth();
        System.out.println("VVV: "+v);
        return v;
    }
}
 


网站公告

今日签到

点亮在社区的每一天
去签到