1
mirror of https://github.com/carm-outsource/TimeReward.git synced 2026-06-04 15:28:16 +08:00

feat(time): 尝试支持按日/周/月/总时长判别奖励。

This commit is contained in:
2023-08-30 03:00:08 +08:00
parent 85b7fba34b
commit e1f4172a7f
17 changed files with 251 additions and 69 deletions
+57
View File
@@ -0,0 +1,57 @@
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalField;
import java.time.temporal.WeekFields;
public class TimeTest {
LocalDate date = LocalDate.of(2023, 8, 30);
@Test
public void test() {
LocalDate date1 = LocalDate.of(2023, 9, 2);
LocalDate date2 = LocalDate.of(2023, 8, 28);
LocalDate date3 = LocalDate.of(2023, 8, 27);
System.out.println(isDayUpdated(date1));
System.out.println(isWeekUpdated(date1));
System.out.println(isMonthUpdated(date1));
System.out.println(isDayUpdated(date2));
System.out.println(isWeekUpdated(date2));
System.out.println(isMonthUpdated(date2));
System.out.println(isDayUpdated(date3));
System.out.println(isWeekUpdated(date3));
System.out.println(isMonthUpdated(date3));
System.out.println(isDayUpdated(date));
}
public @NotNull LocalDate getDate() {
return date;
}
public boolean isDayUpdated(LocalDate d) {
return !d.equals(getDate());
}
public boolean isWeekUpdated(LocalDate d) {
if (!isDayUpdated(d)) return false; // Same day always same week
TemporalField woy = WeekFields.of(DayOfWeek.MONDAY, 4).weekOfWeekBasedYear();
return getDate().get(woy) != d.get(woy);
}
public boolean isMonthUpdated(LocalDate d) {
if (!isDayUpdated(d)) return false; // Same day always same month
// Predicate current month is after the month of the date
return d.getMonth().compareTo(getDate().getMonth()) > 0;
}
}