New file |
| | |
| | | package com.zy.crm.manager.utils; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.time.temporal.ChronoUnit; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.TimeZone; |
| | | |
| | | public class TimeCalculatorUtils { |
| | | |
| | | //获取当前时间的小时数(24小时制): |
| | | public static int nowTimeHour(){ |
| | | // 获取当前时间戳 |
| | | long timestamp = System.currentTimeMillis(); |
| | | |
| | | // 创建Date对象,并设置时间戳 |
| | | Date date = new Date(timestamp); |
| | | |
| | | // 创建TimeZone对象,设置为中国北京时间 |
| | | TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai"); |
| | | |
| | | // 创建Calendar对象,并设置时区 |
| | | // 注意:Calendar类中的月份是从0开始的,所以需要减去1 |
| | | java.util.Calendar calendar = java.util.Calendar.getInstance(timeZone); |
| | | calendar.setTime(date); |
| | | |
| | | // 获取当前小时数(24小时制) |
| | | return calendar.get(java.util.Calendar.HOUR_OF_DAY); |
| | | } |
| | | |
| | | //获取当天小时数(24小时制)中国北京时间: |
| | | public static int timeTimeHour(Date date){ |
| | | // 创建TimeZone对象,设置为中国北京时间 |
| | | TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai"); |
| | | |
| | | // 创建Calendar对象,并设置时区 |
| | | // 注意:Calendar类中的月份是从0开始的,所以需要减去1 |
| | | java.util.Calendar calendar = java.util.Calendar.getInstance(timeZone); |
| | | calendar.setTime(date); |
| | | |
| | | // 获取当前小时数(24小时制) |
| | | return calendar.get(java.util.Calendar.HOUR_OF_DAY); |
| | | } |
| | | |
| | | //获取前一天的日期(日期天数减一) |
| | | public static Date timeYesterday(Date date){ |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | calendar.add(Calendar.DAY_OF_MONTH, -1); |
| | | return calendar.getTime(); |
| | | } |
| | | |
| | | //获取年月日 |
| | | public static String timeYestMonthDay(Date date){ |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | |
| | | int year = calendar.get(Calendar.YEAR); |
| | | int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,需要加1 |
| | | int day = calendar.get(Calendar.DAY_OF_MONTH); |
| | | return year+"年"+month+"月"+day+"日"; |
| | | } |
| | | |
| | | //获取年 |
| | | public static int timeYest(Date date){ |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | |
| | | return calendar.get(Calendar.YEAR); |
| | | } |
| | | |
| | | //获取月 |
| | | public static int timeMonth(Date date){ |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | |
| | | return calendar.get(Calendar.MONTH) + 1; |
| | | } |
| | | |
| | | //获取日 |
| | | public static int timeDay(Date date){ |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | |
| | | return calendar.get(Calendar.DAY_OF_MONTH); |
| | | } |
| | | //获取年差异 |
| | | public static int DifferenceYest(Date startDay,Date endDay){ |
| | | int startYest = timeYest(startDay); |
| | | int endYest = timeYest(endDay); |
| | | return endYest-startYest; |
| | | } |
| | | //获取月差异 |
| | | public static int DifferenceMonth(Date startDay,Date endDay){ |
| | | int startMonth = timeMonth(startDay); |
| | | int endMonth = timeMonth(endDay); |
| | | return endMonth-startMonth; |
| | | } |
| | | //获取天差异 |
| | | public static int DifferenceDayInt(Date startDay,Date endDay){ |
| | | return DifferenceDayLong(startDay,endDay).intValue(); |
| | | } |
| | | //获取天差异 |
| | | public static Long DifferenceDayLong(Date startDay,Date endDay){ |
| | | |
| | | LocalDate a = LocalDate.of(timeYest(startDay), timeMonth(startDay), timeDay(startDay)); |
| | | LocalDate b = LocalDate.of(timeYest(endDay), timeMonth(endDay), timeDay(endDay)); |
| | | |
| | | return ChronoUnit.DAYS.between(a, b)+1; |
| | | } |
| | | //获取天差异 |
| | | public static Double DifferenceDayMorningAfternoon(Date startDay,Date endDay,int startTime,int endTime){ |
| | | double between = DifferenceDayLong(startDay, endDay).doubleValue(); |
| | | if (startTime==2){ |
| | | between = between-0.5; |
| | | } |
| | | if (endTime == 1){ |
| | | between = between-0.5; |
| | | } |
| | | return between; |
| | | } |
| | | |
| | | public static boolean CompareData(Date startDay,Date endDay){ |
| | | |
| | | // 将日期字符串解析为LocalDate对象 |
| | | LocalDate a = LocalDate.of(timeYest(startDay), timeMonth(startDay), timeDay(startDay)); |
| | | LocalDate b = LocalDate.of(timeYest(endDay), timeMonth(endDay), timeDay(endDay)); |
| | | |
| | | // 比较日期 |
| | | if (a.isAfter(b)) { |
| | | return false; |
| | | } else if (a.isBefore(b)) { |
| | | return true; |
| | | } else { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | } |