skyouc
2 天以前 d71f2838bef10e571572db8cd3f82e7db15e3880
rsf-server/src/main/Test/ChineseMD5Util.java
@@ -1,38 +1,68 @@
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class ChineseMD5Util {
    public static List<Integer> getSelectedIndices(int[] arr) {
        List<Integer> indices = new ArrayList<>();
        int index = 0;
        int step = 3;
        while (index < arr.length) {
            indices.add(index);
            index += step;
            step = (step == 3) ? 1 : 3;
        }
        return indices;
    }
//    public static List<Integer> getSelectedIndices(int[] arr) {
//        List<Integer> indices = new ArrayList<>();
//        int index = 0;
//        int step = 3;
//        while (index < arr.length) {
//            indices.add(index);
//            index += step;
//            step = (step == 3) ? 1 : 3;
//        }
//        return indices;
//    }
//
//    public static Integer getNextSelectedValue(int[] arr, int inputIndex) {
//        List<Integer> selectedIndices = getSelectedIndices(arr);
//        int currentPos = selectedIndices.indexOf(inputIndex);
//        if (currentPos != -1 && currentPos + 1 < selectedIndices.size()) {
//            return arr[selectedIndices.get(currentPos + 1)];
//        }
//        return null; // 或按需处理
//    }
//
//    public static void main(String[] args) {
//        int[] arr = {2, 5, 8, 10, 15, 20, 25, 30, 35, 40, 45, 50, 15, 40, 32, 48};
//        System.out.println("输入 0,输出: " + getNextSelectedValue(arr, 0)); // 10
//        System.out.println("输入 3,输出: " + getNextSelectedValue(arr, 3)); // 15
//        System.out.println("输入 4,输出: " + getNextSelectedValue(arr, 4)); // 30
//        System.out.println("输入 4,输出: " + getNextSelectedValue(arr, 5)); // 30
//
//    }
    public static Integer getNextSelectedValue(int[] arr, int inputIndex) {
        List<Integer> selectedIndices = getSelectedIndices(arr);
        int currentPos = selectedIndices.indexOf(inputIndex);
        if (currentPos != -1 && currentPos + 1 < selectedIndices.size()) {
            return arr[selectedIndices.get(currentPos + 1)];
        }
        return null; // 或按需处理
    public static List<String> getFormattedDatesOfPreviousMonth(String pattern) {
//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
//        YearMonth previousMonth = YearMonth.now().minusMonths(1);
//
//        return IntStream.rangeClosed(1, previousMonth.lengthOfMonth())
//                .mapToObj(day -> previousMonth.atDay(day).format(formatter))
//                .collect(Collectors.toList());
        LocalDate today = LocalDate.now().minusDays(1);
        LocalDate oneMonthAgo = today.minusMonths(1);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
        return IntStream.iterate(0, i -> i + 1)
                .limit(ChronoUnit.DAYS.between(oneMonthAgo, today) + 1)
                .mapToObj(oneMonthAgo::plusDays)
                .map(date -> date.format(formatter))
                .collect(Collectors.toList());
    }
    public static void main(String[] args) {
        int[] arr = {2, 5, 8, 10, 15, 20, 25, 30, 35, 40, 45, 50, 15, 40, 32, 48};
        System.out.println("输入 0,输出: " + getNextSelectedValue(arr, 0)); // 10
        System.out.println("输入 3,输出: " + getNextSelectedValue(arr, 3)); // 15
        System.out.println("输入 4,输出: " + getNextSelectedValue(arr, 4)); // 30
        System.out.println("输入 4,输出: " + getNextSelectedValue(arr, 5)); // 30
        List<String> formattedDates = getFormattedDatesOfPreviousMonth("yyyy-MM-dd");
        formattedDates.forEach(System.out::println);
    }
}