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 getSelectedIndices(int[] arr) { // List 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 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 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 formattedDates = getFormattedDatesOfPreviousMonth("yyyy-MM-dd"); formattedDates.forEach(System.out::println); } }