| 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 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 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) { | 
|         List<String> formattedDates = getFormattedDatesOfPreviousMonth("yyyy-MM-dd"); | 
|         formattedDates.forEach(System.out::println); | 
|     } | 
|   | 
| } |