1
mirror of https://github.com/carm-outsource/TimeReward.git synced 2026-06-05 01:08:10 +08:00

fix(time): 修复可能出现的时间异常问题

This commit is contained in:
2025-05-05 08:15:01 +08:00
parent e155659455
commit 451d6b9fa2
9 changed files with 221 additions and 121 deletions
@@ -0,0 +1,52 @@
package cc.carm.plugin.tests;
import cc.carm.plugin.timereward.data.IntervalType;
import cc.carm.plugin.timereward.data.TimeRecord;
import cc.carm.plugin.timereward.user.UserRewardData;
import cc.carm.plugin.timereward.util.DateTimeUtils;
import org.junit.Test;
import java.time.DayOfWeek;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.UUID;
public class DataTest {
DateTimeFormatter DATETIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Test
public void test() {
LocalDate date = LocalDate.of(2025, 5, 1);
LocalDateTime dateTime = LocalDateTime.now().minusHours(10).minusSeconds(600);
System.out.println("-----------------------------------------");
System.out.println(" DURATION: " + Duration.between(dateTime, LocalDateTime.now()).getSeconds());
System.out.println("TODAY START: " + DATETIME.format(DateTimeUtils.todayStartTime()));
System.out.println("WEEK START: " + DATETIME.format(DateTimeUtils.currentWeekStartTime()));
System.out.println("MONTH START: " + DATETIME.format(DateTimeUtils.currentMonthStartTime()));
System.out.println("-----------------------------------------");
System.out.println("RECORD DATE: " + DateTimeFormatter.ofPattern("yyyy-MM-dd").format(date));
System.out.println(" JOIN TIME: " + DATETIME.format(dateTime));
System.out.println("-----------------------------------------");
UserRewardData data = createData(date, dateTime);
for (IntervalType value : IntervalType.values()) {
System.out.println(value.name() + " = " + data.getOnlineDuration(value).getSeconds());
}
}
static UserRewardData createData(LocalDate date, LocalDateTime join) {
return new UserRewardData(
UUID.randomUUID(), new HashMap<>(),
new TimeRecord(date, 0, 0, 0, 0),
join
);
}
}
@@ -0,0 +1,41 @@
package cc.carm.plugin.tests;
import cc.carm.plugin.timereward.data.IntervalType;
import cc.carm.plugin.timereward.data.TimeRecord;
import org.junit.Test;
import java.time.LocalDate;
public class TimeTest {
LocalDate date = LocalDate.of(2023, 8, 30);
@Test
public void test() {
TimeRecord record1 = new TimeRecord(LocalDate.now().minusMonths(1), 0, 0, 0, 0);
TimeRecord record2 = new TimeRecord(LocalDate.now().minusWeeks(1), 0, 0, 0, 0);
TimeRecord record3 = new TimeRecord(LocalDate.now().minusDays(1), 0, 0, 0, 0);
System.out.println(record1.isDayUpdated());
System.out.println(record1.isWeekUpdated());
System.out.println(record1.isMonthUpdated());
System.out.println(record2.isDayUpdated());
System.out.println(record2.isWeekUpdated());
System.out.println(record2.isMonthUpdated());
System.out.println(record3.isDayUpdated());
System.out.println(record3.isWeekUpdated());
System.out.println(record3.isMonthUpdated());
}
@Test
public void durationTest() {
for (IntervalType value : IntervalType.values()) {
System.out.println(value.name() + " = <MAX> = " + value.getMaxDuration().getSeconds());
}
}
}