private static string NextDateValue(TimexProperty timex, DateObject date) { if (timex.Month != null && timex.DayOfMonth != null) { return(TimexValue.DateValue(new TimexProperty { Year = date.Year, Month = timex.Month, DayOfMonth = timex.DayOfMonth, })); } if (timex.DayOfWeek != null) { var day = timex.DayOfWeek == 7 ? DayOfWeek.Sunday : (DayOfWeek)timex.DayOfWeek; var result = TimexDateHelpers.DateOfNextDay(day, date); return(TimexValue.DateValue(new TimexProperty { Year = result.Year, Month = result.Month, DayOfMonth = result.Day, })); } return(string.Empty); }
public static string NextWeek(System.DateTime date = default(System.DateTime)) { var d = (date == default(System.DateTime)) ? System.DateTime.Now : date; var start = TimexDateHelpers.DateOfNextDay(DayOfWeek.Monday, d); var t = TimexProperty.FromDate(start); t.Days = 7; return(t.TimexValue); }
private static DateObject GenerateWeekDate(TimexProperty timex, DateObject date, bool isBefore) { DateObject start; if (timex.WeekOfMonth == null && timex.WeekOfYear == null) { var day = timex.DayOfWeek == 7 ? DayOfWeek.Sunday : (DayOfWeek)timex.DayOfWeek; if (isBefore) { start = TimexDateHelpers.DateOfLastDay(day, date); } else { start = TimexDateHelpers.DateOfNextDay(day, date); } } else { int dayOfWeek = timex.DayOfWeek.Value - 1; int year = timex.Year ?? date.Year; if (timex.WeekOfYear != null) { int weekOfYear = timex.WeekOfYear.Value; start = TimexHelpers.FirstDateOfWeek(year, weekOfYear, CultureInfo.InvariantCulture).AddDays(dayOfWeek); if (timex.Year == null) { if (isBefore && start > date) { start = TimexHelpers.FirstDateOfWeek(year - 1, weekOfYear, CultureInfo.InvariantCulture).AddDays(dayOfWeek); } else if (!isBefore && start < date) { start = TimexHelpers.FirstDateOfWeek(year + 1, weekOfYear, CultureInfo.InvariantCulture).AddDays(dayOfWeek); } } } else { int month = timex.Month ?? date.Month; int weekOfMonth = timex.WeekOfMonth.Value; start = TimexHelpers.GenerateMonthWeekDateStart(year, month, weekOfMonth).AddDays(dayOfWeek); if (timex.Year == null || timex.Month == null) { if (isBefore && start > date) { start = TimexHelpers.GenerateMonthWeekDateStart(timex.Month != null ? year - 1 : year, timex.Month == null ? month - 1 : month, weekOfMonth).AddDays(dayOfWeek); } else if (!isBefore && start < date) { start = TimexHelpers.GenerateMonthWeekDateStart(timex.Month != null ? year + 1 : year, timex.Month == null ? month + 1 : month, weekOfMonth).AddDays(dayOfWeek); } } } } return(start); }
public static string ThisWeek(DateObject date = default(DateObject)) { var d = (date == default(DateObject)) ? DateObject.Now : date; d = d.AddDays(-7); var start = TimexDateHelpers.DateOfNextDay(DayOfWeek.Monday, d); var t = TimexProperty.FromDate(start); t.Days = 7; return(t.TimexValue); }
public static Tuple <TimexProperty, TimexProperty> YearWeekDateRange(int year, int weekOfYear, bool?isWeekend) { var firstMondayInWeek = FirstDateOfWeek(year, weekOfYear, System.Globalization.CultureInfo.InvariantCulture); var start = (isWeekend == null || isWeekend.Value == false) ? firstMondayInWeek : TimexDateHelpers.DateOfNextDay(DayOfWeek.Saturday, firstMondayInWeek); var end = firstMondayInWeek + TimeSpan.FromDays(7); return(new Tuple <TimexProperty, TimexProperty>( new TimexProperty { Year = start.Year, Month = start.Month, DayOfMonth = start.Day }, new TimexProperty { Year = end.Year, Month = end.Month, DayOfMonth = end.Day })); }
private static Tuple <string, string> YearWeekDateRange(int year, int weekOfYear, bool?isWeekend) { var dateInWeek = new DateObject(year, 1, 1) + TimeSpan.FromDays((weekOfYear - 1) * 7); var start = (isWeekend == null || isWeekend.Value == false) ? TimexDateHelpers.DateOfLastDay(DayOfWeek.Monday, dateInWeek) : TimexDateHelpers.DateOfNextDay(DayOfWeek.Saturday, dateInWeek); var end = TimexDateHelpers.DateOfLastDay(DayOfWeek.Monday, dateInWeek + TimeSpan.FromDays(7)); return(new Tuple <string, string>( TimexValue.DateValue(new TimexProperty { Year = start.Year, Month = start.Month, DayOfMonth = start.Day }), TimexValue.DateValue(new TimexProperty { Year = end.Year, Month = end.Month, DayOfMonth = end.Day }))); }