configure grpc
This commit is contained in:
102
AZKiServer/Utilz/DateUtils.cs
Normal file
102
AZKiServer/Utilz/DateUtils.cs
Normal file
@@ -0,0 +1,102 @@
|
||||
namespace AZKiServer.Utilz;
|
||||
|
||||
public enum DateInterval
|
||||
{
|
||||
Daily,
|
||||
Weekly,
|
||||
Monthly,
|
||||
Yearly,
|
||||
All,
|
||||
}
|
||||
|
||||
public static class DateUtils
|
||||
{
|
||||
public static TimeSpan ToUnixTime(this DateTime date)
|
||||
{
|
||||
return date - DateTime.UnixEpoch;
|
||||
}
|
||||
|
||||
public static DateTime SnapToYear(this DateTime date)
|
||||
{
|
||||
return new DateTime(date.Year, 1, 1, 0, 0, 0, date.Kind);
|
||||
}
|
||||
|
||||
public static DateTimeOffset SnapToYear(this DateTimeOffset date)
|
||||
{
|
||||
return new DateTimeOffset(date.Year, 1, 1, 0, 0, 0, date.Offset);
|
||||
}
|
||||
|
||||
public static DateTime SnapToMonth(this DateTime date)
|
||||
{
|
||||
return new DateTime(date.Year, date.Month, 1, 0, 0, 0, date.Kind);
|
||||
}
|
||||
|
||||
public static DateTimeOffset SnapToMonth(this DateTimeOffset date)
|
||||
{
|
||||
return new DateTimeOffset(date.Year, date.Month, 1, 0, 0, 0, date.Offset);
|
||||
}
|
||||
|
||||
public static DateTime SnapToWeek(this DateTime date)
|
||||
{
|
||||
var d = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0, date.Kind);
|
||||
if (date.DayOfWeek == DayOfWeek.Sunday)
|
||||
return d;
|
||||
else
|
||||
return d.AddDays(-(int)date.DayOfWeek);
|
||||
}
|
||||
|
||||
public static DateTimeOffset SnapToWeek(this DateTimeOffset date)
|
||||
{
|
||||
var d = new DateTimeOffset(date.Year, date.Month, date.Day, 0, 0, 0, date.Offset);
|
||||
if (date.DayOfWeek == DayOfWeek.Sunday)
|
||||
return d;
|
||||
else
|
||||
return d.AddDays(-(int)date.DayOfWeek);
|
||||
}
|
||||
|
||||
public static (DateTime from, DateTime to) ToInterval(this DateTime date, DateInterval internval)
|
||||
{
|
||||
return internval switch
|
||||
{
|
||||
DateInterval.Daily => (date, date.AddDays(1)),
|
||||
DateInterval.Weekly => (date, date.AddDays(7)),
|
||||
DateInterval.Monthly => (date, date.AddMonths(1)),
|
||||
DateInterval.Yearly => (date, date.AddYears(1)),
|
||||
DateInterval.All => (DateTime.MinValue, DateTime.MaxValue),
|
||||
_ => throw new InvalidOperationException(),
|
||||
};
|
||||
}
|
||||
|
||||
public static (DateTimeOffset from, DateTimeOffset to) ToInterval(this DateTimeOffset date, DateInterval internval)
|
||||
{
|
||||
return internval switch
|
||||
{
|
||||
DateInterval.Daily => (date, date.AddDays(1)),
|
||||
DateInterval.Weekly => (date, date.AddDays(7)),
|
||||
DateInterval.Monthly => (date, date.AddMonths(1)),
|
||||
DateInterval.Yearly => (date, date.AddYears(1)),
|
||||
DateInterval.All => (DateTime.MinValue, DateTime.MaxValue),
|
||||
_ => throw new InvalidOperationException(),
|
||||
};
|
||||
}
|
||||
|
||||
public static TimeSpan Days(this int days) => TimeSpan.FromDays(days);
|
||||
|
||||
public static TimeSpan Days(this float days) => TimeSpan.FromDays(days);
|
||||
|
||||
public static TimeSpan Hours(this int hours) => TimeSpan.FromHours(hours);
|
||||
|
||||
public static TimeSpan Hours(this float hours) => TimeSpan.FromHours(hours);
|
||||
|
||||
public static TimeSpan Minutes(this int minutes) => TimeSpan.FromMinutes(minutes);
|
||||
|
||||
public static TimeSpan Minutes(this float minutes) => TimeSpan.FromMinutes(minutes);
|
||||
|
||||
public static TimeSpan Seconds(this int seconds) => TimeSpan.FromSeconds(seconds);
|
||||
|
||||
public static TimeSpan Seconds(this float seconds) => TimeSpan.FromSeconds(seconds);
|
||||
|
||||
public static TimeSpan Miliseconds(this int miliseconds) => TimeSpan.FromMilliseconds(miliseconds);
|
||||
|
||||
public static TimeSpan Miliseconds(this float miliseconds) => TimeSpan.FromMilliseconds(miliseconds);
|
||||
}
|
||||
Reference in New Issue
Block a user