public static DateTime OffsetBy(this DateTime dt, int offsetVal, DateTimeOffsetStyles styles)
 {
     return(styles switch
     {
         DateTimeOffsetStyles.Day => DateTimeCalc.OffsetByDays(dt, offsetVal),
         DateTimeOffsetStyles.Week => DateTimeCalc.OffsetByWeeks(dt, offsetVal),
         DateTimeOffsetStyles.Month => DateTimeCalc.OffsetByMonths(dt, offsetVal, DateTimeOffsetOptions.Relatively),
         DateTimeOffsetStyles.Quarters => DateTimeCalc.OffsetByQuarters(dt, offsetVal, DateTimeOffsetOptions.Relatively),
         DateTimeOffsetStyles.Year => DateTimeCalc.OffsetByYears(dt, offsetVal, DateTimeOffsetOptions.Relatively),
         _ => DateTimeCalc.OffsetByDays(dt, offsetVal)
     });
Beispiel #2
0
 public static DateTime CreateByWeek(int year, int month, DayOfWeek dayOfWeek, int occurrence)
 => DateTimeCalc.OffsetByWeek(year, month, occurrence, dayOfWeek.CastToInt(0));
Beispiel #3
0
 public static DateTime CreatePreviousDayByWeek(DateTime dt, DayOfWeek dayOfWeek)
 => DateTimeCalc.OffsetByWeekBefore(dt, dayOfWeek);
Beispiel #4
0
 public static DateTime CreatePreviousDayByWeek(int year, int month, int day, DayOfWeek dayOfWeek)
 => DateTimeCalc.OffsetByWeekBefore(Create(year, month, day), dayOfWeek);
Beispiel #5
0
 public static DateTime CreateNextDayByWeek(DateTime dt, DayOfWeek dayOfWeek)
 => DateTimeCalc.OffsetByWeekAfter(dt, dayOfWeek);
Beispiel #6
0
 public static DateTime CreateNextDayByWeek(int year, int month, int day, DayOfWeek dayOfWeek)
 => DateTimeCalc.OffsetByWeekAfter(Create(year, month, day), dayOfWeek);
Beispiel #7
0
 public static DateTime CreateFirstDayOfMonth(int year, int month, int dayOfWeek)
 => DateTimeCalc.OffsetByWeek(year, month, 1, dayOfWeek);
Beispiel #8
0
 /// <summary>
 /// To get the latest weekday for example Monday in a month.<br />
 /// 寻找一个月中的最后一个工作日(如周一)
 /// </summary>
 /// <param name="year"></param>
 /// <param name="month"></param>
 /// <param name="dayOfWeek"></param>
 /// <returns></returns>
 public static DateTime CreateLastDayOfMonth(int year, int month, int dayOfWeek)
 {
     return(DateTimeCalc.TryOffsetByWeek(year, month, 5, dayOfWeek, out var resultedDay)
         ? resultedDay
         : DateTimeCalc.OffsetByWeek(year, month, 4, dayOfWeek));
 }
Beispiel #9
0
 public static DateTime AddDuration(this DateTime dt, Duration duration) => DateTimeCalc.OffsetByDuration(dt, duration);
Beispiel #10
0
 public static DateTime AddQuarters(this DateTime dt, int quarters) => DateTimeCalc.OffsetByQuarters(dt, quarters);
Beispiel #11
0
 public static DateTime AddWeeks(this DateTime dt, int weeks) => DateTimeCalc.OffsetByWeeks(dt, weeks);