Added English voice work updater.
This commit is contained in:
8
JSMR.Infrastructure/Common/Time/ITimeProvider.cs
Normal file
8
JSMR.Infrastructure/Common/Time/ITimeProvider.cs
Normal file
@@ -0,0 +1,8 @@
|
||||
namespace JSMR.Infrastructure.Common.Time;
|
||||
|
||||
public interface ITimeProvider
|
||||
{
|
||||
DateTimeOffset Now();
|
||||
DateTimeOffset Local(int year, int month, int day, int hour);
|
||||
DateTimeOffset Local(DateTimeOffset offset);
|
||||
}
|
||||
@@ -1,12 +1,5 @@
|
||||
namespace JSMR.Infrastructure.Common.Time;
|
||||
|
||||
public interface ITimeProvider
|
||||
{
|
||||
DateTimeOffset Now();
|
||||
DateTimeOffset Local(int year, int month, int day, int hour);
|
||||
DateTimeOffset Local(DateTimeOffset offset);
|
||||
}
|
||||
|
||||
public abstract class TimeProvider : ITimeProvider
|
||||
{
|
||||
protected abstract string Id { get; }
|
||||
@@ -42,28 +35,4 @@ public abstract class TimeProvider : ITimeProvider
|
||||
|
||||
return new DateTimeOffset(local, offset);
|
||||
}
|
||||
|
||||
public DateTimeOffset CurrentScanAnchor()
|
||||
{
|
||||
DateTimeOffset now = Now();
|
||||
DateTimeOffset midnight = Local(now.Year, now.Month, now.Day, 0);
|
||||
DateTimeOffset fourPm = Local(now.Year, now.Month, now.Day, 16);
|
||||
|
||||
return now >= fourPm ? fourPm : midnight;
|
||||
}
|
||||
|
||||
public DateTimeOffset PreviousScanAnchor(DateTimeOffset scanAnchorTokyo)
|
||||
{
|
||||
// Normalize to Tokyo (no-op if already)
|
||||
var a = TimeZoneInfo.ConvertTime(scanAnchorTokyo, _timeZone);
|
||||
return a.Hour == 16
|
||||
? Local(a.Year, a.Month, a.Day, 0)
|
||||
: Local(a.AddDays(-1).Year, a.AddDays(-1).Month, a.AddDays(-1).Day, 16);
|
||||
}
|
||||
}
|
||||
|
||||
public class TokyoTimeProvider(IClock clock) : TimeProvider(clock)
|
||||
{
|
||||
protected override string Id => "Tokyo Standard Time";
|
||||
protected override string[] TimeZoneIds => ["Tokyo Standard Time", "Asia/Tokyo"];
|
||||
}
|
||||
7
JSMR.Infrastructure/Common/Time/TokyoTimeProvider.cs
Normal file
7
JSMR.Infrastructure/Common/Time/TokyoTimeProvider.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace JSMR.Infrastructure.Common.Time;
|
||||
|
||||
public class TokyoTimeProvider(IClock clock) : TimeProvider(clock)
|
||||
{
|
||||
protected override string Id => "Tokyo Standard Time";
|
||||
protected override string[] TimeZoneIds => ["Tokyo Standard Time", "Asia/Tokyo"];
|
||||
}
|
||||
Reference in New Issue
Block a user