xuhy
2025-04-27 5fa6e6f8410ef9d057174bcff2a3c5038c54a551
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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);
    }
}