public IActionResult MonthView(MonthViewPagerViewModel model, int Year, int Month) { try { if (Request.Method.Equals("GET") && Year == 0) { model.Month = DateTime.Today.Month - 1; ModelState.Clear(); } else if (Year != 0) { model.Year = Year; model.Month = Month; } var monthDicItem = MonthGenerator.GetAllMonthsForYear(model.Year).FirstOrDefault(x => (int)x["MonthNum"] == model.Month + 1); if (monthDicItem != null) { model.SelectedMonth = new MonthViewModel() { MonthStartTs = (DateTime)monthDicItem["MonthStart"], MonthEndTs = (DateTime)monthDicItem["MonthEnd"], MonthNum = model.Month + 1 }; } if (ModelState.IsValid) { return(View(model)); } else { return(View(model)); } } catch (Exception ex) { model.Month = DateTime.Today.Month - 1; ViewData["WarningMessage"] = ex.Message; return(View(model)); } }
public DateTime NextDate() { var d = DateTime.Now; if (Start >= End) { return(d); } var yearGenerator = YearGenerator; if (yearGenerator == null && Start.HasValue && End.HasValue) { yearGenerator = new LinearGenerator(DateToYearFraction(Start.Value), DateToYearFraction(End.Value)); } d = GetInRange(() => { if (yearGenerator != null) { d = YearFractionToDate(yearGenerator.Next()); } if (PartOfYearGenerator != null) { //if (YearGenerator == null || Randomness.Random.NextDouble() < 1 - YearWeight) { // d = YearFractionToDate(_uniform.Next()); var val = PartOfYearGenerator.Next(); var days = val * (DateTime.IsLeapYear(d.Year) ? 366 : 365); var dnew = new DateTime(d.Year, 1, 1).AddDays(days); if (YearGenerator != null && Distance(d, dnew) > 1d) { return(DateTime.MinValue); } d = dnew; } } if (MonthGenerator != null) { //if (YearGenerator == null || Randomness.Random.NextDouble() < 1 - YearWeight) { var val = MonthGenerator.Next(); if (YearGenerator != null || PartOfYearGenerator != null) { if (d.Month != (int)val) { return(DateTime.MinValue); //var daysInMonth = DateTime.DaysInMonth(d.Year, (int)val); //var mid = new DateTime(d.Year, (int) val, daysInMonth/2); //var p = Distance(d, mid)/(double)daysInMonth; //if (Randomness.Random.NextDouble() < p) return DateTime.MinValue; } } else { var days = (d.Day - 1) / (double)(DateTime.DaysInMonth(d.Year, d.Month)); d = new DateTime(d.Year, (int)val, 1 + (int)(days * DateTime.DaysInMonth(d.Year, (int)val))); } } } if (DayOfWeekGenerator != null) { var val = (int)DayOfWeekGenerator.Next(); d = d.AddDays(-(int)d.DayOfWeek + val); } if (HourGenerator != null) { d = d.Date.AddHours(HourGenerator.Next()); } return(d); }); return(d); }