public static DateTime GetDateFromTokens(TokenOrdinal ordinal, TokenDayOfWeek day, TokenMonth month) { int number = (int)ordinal.Value; DayOfWeek dayOfWeek = ((DateTime)day.Value).DayOfWeek; int foundCounter = 0; DateTime startDate = new DateTime(DateTime.Now.Year, (int)month.Value, 1, 0, 0, 0); while (true) { if (startDate.DayOfWeek == dayOfWeek) { foundCounter++; if (foundCounter == number) { return startDate; } } startDate = startDate.AddDays(1); } }
public static TokenDeterminateSeries GetSeriesFromTokens(TokenEach each, TokenOther other, TokenDayOfWeek dow, TokenMonth month) { DateTime endDate; DateTime startDate; if (DateTime.Now.Month <= (int)month.Value) { endDate = new DateTime(DateTime.Now.Year, (int) month.Value, new DateTime(DateTime.Now.Year, (int)month.Value + 1, 1).AddDays(-1).Day); startDate = GetFirstDowOfMonth((int)month.Value, DateTime.Now.Year, (DayOfWeek)dow.Value); } else { endDate = new DateTime(DateTime.Now.Year + 1, (int) month.Value, new DateTime(DateTime.Now.Year, (int)month.Value + 1, 1).AddDays(-1).Day); startDate = GetFirstDowOfMonth((int)month.Value, DateTime.Now.Year + 1, (DayOfWeek)dow.Value); } var series = new TokenDeterminateSeries { EndDate = endDate, Interval = 2, IntervalType = TokenDeterminateSeries.SeriesIntervalType.DayOfWeek, StartDate = startDate, Value = dow.Value }; return series; }
public static DateTime GetDateFromTokens(TokenMonth month, TokenOrdinal day, TokenNumeric year) { return new DateTime((int) year.Value, (int)month.Value, (int)day.Value); }
public static DateTime GetDateFromTokens(TokenMonth month, TokenOrdinal day) { return new DateTime(DateTime.Now.Year, (int)month.Value, (int)day.Value); }
public static DateTime GetDateFromTokens(TokenMonth month, TokenOrdinal day, TokenTime time) { return new DateTime(DateTime.Now.Year, (int)month.Value, (int)day.Value) + (TimeSpan)time.Value; }
public static DateTime GetDateFromTokens(TokenOrdinal ordinal, TokenDayOfWeek day, TokenMonth month, TokenTime time) { return GetDateFromTokens(ordinal, day, month) + (TimeSpan) time.Value; }