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);
|
}
|
|
}
|