package com.ruoyi.system.vo;
|
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
|
import java.time.LocalDate;
|
import java.time.format.DateTimeFormatter;
|
import java.util.Comparator;
|
|
@Data
|
@AllArgsConstructor
|
public class YearQuarter implements Comparable<YearQuarter> {
|
private int year;
|
private int quarter;
|
|
public static YearQuarter from(LocalDate date) {
|
int quarter = (date.getMonthValue() - 1) / 3 + 1;
|
return new YearQuarter(date.getYear(), quarter);
|
}
|
|
public String format(DateTimeFormatter formatter) {
|
return formatter.format(LocalDate.of(year, quarter * 3 - 2, 1));
|
}
|
|
@Override
|
public int compareTo(YearQuarter other) {
|
return Comparator.comparingInt(YearQuarter::getYear)
|
.thenComparingInt(YearQuarter::getQuarter)
|
.compare(this, other);
|
}
|
}
|