public static EorzeaTime Add(this EorzeaTime et, int year = default, int month = default, int day = default, int hour = default, int minute = default) { return(new EorzeaTime(et.Year + year, et.Month + month, et.Day + day, et.Hour + hour, et.Minute + minute)); }
public static DateTime ToEarthTime(this EorzeaTime et) { var months = MonthsOfYear * (et.Year - 1) + (et.Month - 1); var days = DaysOfMonth * months + (et.Day - 1); var hours = HoursOfDay * days + et.Hour; var minutes = MinutesOfHour * hours + et.Minute; var seconds = (long)Math.Round(minutes * TimeRate / MinutesOfHour); var utc = DateTimeOffset.FromUnixTimeSeconds(seconds); return(utc.DateTime); }
public static EorzeaTime Set(this EorzeaTime et, int?year = default, int?month = default, int?day = default, int?hour = default, int?minute = default) { return(new EorzeaTime(year ?? et.Year, month ?? et.Month, day ?? et.Day, hour ?? et.Hour, minute ?? et.Minute)); }