中扬CRM客户关系管理系统
LSH
2024-03-26 2b1d15c6bfadb41714fa69e4fe899d3c4e6d776b
#完善工具类
2个文件已修改
242 ■■■■■ 已修改文件
src/main/java/com/zy/crm/manager/utils/TimeCalculatorUtils.java 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/index.html 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/utils/TimeCalculatorUtils.java
@@ -1,12 +1,13 @@
package com.zy.crm.manager.utils;
import javax.xml.crypto.Data;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import java.time.temporal.TemporalAdjusters;
import java.time.temporal.WeekFields;
import java.util.*;
public class TimeCalculatorUtils {
@@ -49,6 +50,22 @@
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, -1);
        return calendar.getTime();
    }
    //获取七天前的日期(日期天数减七)
    public static Date timeFrontSevenYesterday(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, -7);
        return calendar.getTime();
    }
    //获取七天后的日期(日期天数加七)
    public static Date timeAfterSevenYesterday(Date date){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, 7);
        return calendar.getTime();
    }
@@ -138,4 +155,211 @@
        }
    }
    //java.time.LocalDate 转换为 java.util.Date;
    public static Date DateLocalDate(LocalDate localDate) {
        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    }
    //获取现在日期是当月第几周
    public static int WeeklyNowMonth(Date date) {
//        LocalDate currentDate = LocalDate.now();
        LocalDate currentDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date));
        WeekFields weekFields = WeekFields.of(Locale.getDefault());
        int weekOfMonth = currentDate.get(weekFields.weekOfMonth());
        return weekOfMonth;
    }
    //限制两个日期是周一和周末  工作日  周一到周六
    public static void WeeklySix(Date date) {
//        LocalDate startDate = LocalDate.of(2022, 9, 5); // 假设开始日期是2022年9月5日,周一
        LocalDate startDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date));
        System.out.println("当前日期 " + startDate + " 周");
        LocalDate endDate = startDate.plus(6, ChronoUnit.DAYS); // 结束日期是开始日期加上6天
        System.out.println("当前日期加上6天是 " + endDate + " 周");
        // 如果开始日期不是周一,则将它调整到下一个周一
        if (startDate.getDayOfWeek() != DayOfWeek.MONDAY) {
            startDate = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
        }
        // 如果结束日期不是周末(即周六或周日),则将它调整到下一个周末
        if (endDate.getDayOfWeek() != DayOfWeek.SATURDAY && endDate.getDayOfWeek() != DayOfWeek.SUNDAY) {
            endDate = endDate.with(TemporalAdjusters.next(DayOfWeek.SATURDAY));
        }
        // 确保两个日期之间相隔七天
        while (startDate.plus(7, ChronoUnit.DAYS).isBefore(endDate)) {
            startDate = startDate.plus(7, ChronoUnit.DAYS);
        }
        System.out.println("开始日期:" + startDate);
        System.out.println("结束日期:" + endDate);
    }
    //限制两个日期是周一和周末  周一到周日
    public static List<Date> WeeklySeven(Date date) {
//        LocalDate startDate = LocalDate.of(2022, 9, 5); // 假设开始日期是2022年9月5日,周一
        LocalDate startDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date));
//        System.out.println("当前日期 " + startDate + " 周");
        LocalDate endDate = startDate.plus(6, ChronoUnit.DAYS); // 结束日期是开始日期加上6天
//        System.out.println("当前日期加上6天是 " + endDate + " 周");
        // 如果开始日期不是周一,则将它调整到下一个周一
        if (startDate.getDayOfWeek() != DayOfWeek.MONDAY) {
            startDate = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
        }
        // 如果结束日期不是周日,则将它调整到下一个周日
        if (endDate.getDayOfWeek() != DayOfWeek.SUNDAY) {
            endDate = endDate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
        }
        // 确保两个日期之间相隔七天
        while (startDate.plus(7, ChronoUnit.DAYS).isBefore(endDate)) {
            startDate = startDate.plus(7, ChronoUnit.DAYS);
        }
        List<Date> dateList = new ArrayList<>();
        dateList.add(DateLocalDate(startDate));
        dateList.add(DateLocalDate(endDate));
        return dateList;
//        System.out.println("开始日期:" + startDate);
//        System.out.println("结束日期:" + endDate);
    }
    //判断是不是周一
    public static boolean WeeklyOneSign(Date date) {
        LocalDate localDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date));
        // 判断是不是周一
        if (localDate.getDayOfWeek() != DayOfWeek.MONDAY) {
            return false;
        }
        return true;
    }
    //判断是不是周一 如果日期不是周一,则将它调整到本周周一
    public static Date WeeklyMonday (Date date) {
        LocalDate localDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date));
        // 判断是不是周一 则将它调整到下周周一
        if (WeeklyOneSign(date)) {
            localDate = localDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
        }
        // 将LocalDate转换为Date
        Date monday = DateLocalDate(localDate);
        // 则将它调整到本周周一
        Date nowMonday = timeFrontSevenYesterday(monday);
        return nowMonday;
    }
    //获取当前日期所在的周一及周日时间
    public static List<Date> WeeklyMondayAndSundayNow(Date date) {
        Date nowMonday = WeeklyMonday(date);
        return WeeklySeven(nowMonday);
    }
    //获取当前日期上一周周一及周日时间
    public static List<Date> WeeklyMondayAndSundayFront(Date date) {
        Date nowMonday = WeeklyMonday(date);
        Date frontSevenYesterday = timeFrontSevenYesterday(nowMonday);
        return WeeklySeven(frontSevenYesterday);
    }
    //获取当前日期下一周周一及周日时间
    public static List<Date> WeeklyMondayAndSundayAfter(Date date) {
        Date nowMonday = WeeklyMonday(date);
        Date afterSevenYesterday = timeAfterSevenYesterday(nowMonday);
        return WeeklySeven(afterSevenYesterday);
    }
    public static void main(String[] args) {
        Date now = new Date();
        //本周
        List<Date> dateList = WeeklyMondayAndSundayNow(now);
        for (Date date : dateList){
            System.out.println("------------------------------");
            System.out.println(date);
        }
        //上周
        List<Date> dateList1 = WeeklyMondayAndSundayFront(now);
        for (Date date : dateList1){
            System.out.println("------------------------------");
            System.out.println(date);
        }
        //下周
        List<Date> dateList2 = WeeklyMondayAndSundayAfter(now);
        for (Date date : dateList2){
            System.out.println("------------------------------");
            System.out.println(date);
        }
    }
//    public static void main(String[] args) {
////        Date now = new Date();
//        LocalDate startDate = LocalDate.of(2024, 3, 27); // 假设开始日期是2022年9月5日,周一
//        Date now = Date.from(startDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
//        System.out.println("当前日期 " + now);
//
//        int weeklyNowMonth = WeeklyNowMonth(now);
//        System.out.println("当前日期是当月第 " + weeklyNowMonth + " 周");
//
//        //获取当前周周一
//        Date nowMonday = WeeklyMonday(now);
//        System.out.println("当前日期是当周周一:"+nowMonday);
//
//        Date daySeven = timeFrontSevenYesterday(nowMonday);
//        System.out.println("当前日期是上周周一 " + daySeven);
//
//        System.out.println("--------------------------------------------");
//
//        WeeklySeven(nowMonday);
//        System.out.println("--------------------------------------------");
//
//        WeeklySeven(daySeven);
//        System.out.println("--------------------------------------------");
//
//    }
//    public static void main(String[] args) {
////        Date now = new Date();
////        System.out.println("当前日期 " + now);
//
////        int weeklyNowMonth = WeeklyNowMonth(now);
////        System.out.println("当前日期是当月第 " + weeklyNowMonth + " 周");
////
////        Date date = timeYesterday(now);
////        System.out.println("当前日期前一天日期 " + date);
////
////        weeklyNowMonth = WeeklyNowMonth(date);
////        System.out.println("当前日期前一天是当月第 " + weeklyNowMonth + " 周");
////
//////        System.out.println("--------------------------------------------");
//////        WeeklySix(now);
//////        WeeklySix(date);
////        System.out.println("--------------------------------------------");
////
////        WeeklySeven(now);
////        WeeklySeven(date);
////        System.out.println("--------------------------------------------");
////
////        Date daySeven = timeFrontSevenYesterday(now);
////        System.out.println("当前日期前七天日期 " + daySeven);
////
////
////        System.out.println("--------------------------------------------");
////        WeeklySeven(now);
////        WeeklySeven(daySeven);
////        System.out.println("--------------------------------------------");
//
//    }
}
src/main/webapp/views/index.html
@@ -74,10 +74,10 @@
    <!-- 主体部分 -->
    <div class="layui-body"></div>
    <!-- 底部 -->
    <div class="layui-footer layui-text">
        copyright © 2022 <a href="http://www.zoneyung.com" target="_blank">浙江中扬立库技术有限公司</a> all rights reserved.
        <span class="pull-right">Version 1.0.0</span>
    </div>
<!--    <div class="layui-footer layui-text">-->
<!--        copyright © 2022 <a href="http://www.zoneyung.com" target="_blank">浙江中扬立库技术有限公司</a> all rights reserved.-->
<!--        <span class="pull-right">Version 1.0.0</span>-->
<!--    </div>-->
</div>