[Test] // bug #81783 public void GregorianAddMonth() { GregorianCalendar c = new GregorianCalendar(); DateTime d = new DateTime(2007, 5, 31); DateTime prev = c.AddMonths(d, -1); Assert.AreEqual(4, prev.Month, "prev"); DateTime next = c.AddMonths(d, 1); Assert.AreEqual(6, next.Month, "next"); d = new DateTime(2003, 12, 5); prev = c.AddMonths(d, -13); Assert.AreEqual(new DateTime(2002, 11, 5), prev, "prev2"); next = c.AddMonths(d, 6); Assert.AreEqual(new DateTime(2004, 6, 5), next, "next2"); }
/// <summary> /// Returns a DateTime that is the specified number of months away from /// the specified DateTime. /// </summary> /// <param name="day">The DateTime to which to add months.</param> /// <param name="months">The number of months to add.</param> /// <returns> /// The DateTime that results from adding the specified number of months /// to the specified DateTime. /// </returns> public override DateTime?AddMonths(DateTime day, int months) { try { return(_calendar.AddMonths(day, months)); } catch (ArgumentException) { return(null); } }
public void PosTest6() { DateTime initialTime; int months; DateTime resultingTime; System.Globalization.Calendar myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); months = 48; initialTime = myCalendar.ToDateTime(1996, 2, 29, 10, 30, 24, 0); resultingTime = myCalendar.AddMonths(initialTime, months); VerifyAddMonthsResult(myCalendar, initialTime, resultingTime, months); }
public void PosTest3() { DateTime initialTime; int months; DateTime resultingTime; System.Globalization.Calendar myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); months = -1 * _generator.GetInt32(-55) % c_MAX_MONTHS_NUMBER - 1; initialTime = myCalendar.MaxSupportedDateTime; resultingTime = myCalendar.AddMonths(initialTime, months); VerifyAddMonthsResult(myCalendar, initialTime, resultingTime, months); }
public static DateTime?AddMonths(DateTime time, int months) { System.Globalization.Calendar cal = new GregorianCalendar(); try { return(cal.AddMonths(time, months)); } catch (ArgumentException) { return(null); } }
public void PosTest1() { DateTime initialTime; int months; DateTime resultingTime; System.Globalization.Calendar myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); months = 0; initialTime = DateTime.Now; resultingTime = myCalendar.AddMonths(initialTime, months); Assert.Equal(initialTime, resultingTime); }
private CalculateNext GetNextMajorFunction() { // Create a function that, applied to a date/time, returns the // "next" value for major labels. CalculateNext NextMajor = null; if (axisType == AxisType.Quarters) { NextMajor = delegate(DateTime dt) { return(cal.AddMonths(dt, 3)); } } ; else if (axisType == AxisType.DailyWithHourlyTicks || axisType == AxisType.DailyWithHourlyLabels) { NextMajor = delegate(DateTime dt) { return(cal.AddDays(dt, 1)); } } ; else { NextMajor = delegate(DateTime dt) { return(cal.AddMonths(dt, 1)); } }; return(NextMajor); }
public void NegTest3() { DateTime time; int months; System.Globalization.Calendar myCalendar; myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); time = myCalendar.MaxSupportedDateTime; months = 1; Assert.Throws <ArgumentOutOfRangeException>(() => { myCalendar.AddMonths(time, months); }); }
public void NegTest2() { DateTime time; int months; System.Globalization.Calendar myCalendar; time = DateTime.Now; months = c_MAX_MONTHS_NUMBER + 1 + _generator.GetInt32(-55) % (int.MaxValue - c_MAX_MONTHS_NUMBER); myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); Assert.Throws <ArgumentOutOfRangeException>(() => { myCalendar.AddMonths(time, months); }); }
protected void RenderMonthList(TextWriter output) { Calendar calendar = new GregorianCalendar(); output.Write("<div id=\"divMnthLst\" style=\"display: none;\">"); DateTime dateTime = calendar.AddMonths((DateTime)this.month, -3); if (dateTime.Year - 2 >= DateTime.MinValue.Year) { DateTime date = new DateTime(dateTime.Year - 2, 1, dateTime.Day, calendar); this.RenderMonthListItem(date, calendar, output, false, true); } if (dateTime.Year - 1 >= DateTime.MinValue.Year) { DateTime date = new DateTime(dateTime.Year - 1, 1, dateTime.Day, calendar); this.RenderMonthListItem(date, calendar, output, false, true); } output.Write("<div class=\"dpMnuSep\"></div>"); for (int i = 0; i < 7; i++) { this.RenderMonthListItem(dateTime, calendar, output, i == 3, false); dateTime = calendar.AddMonths(dateTime, 1); } dateTime = calendar.AddMonths(dateTime, -1); if (dateTime.Year + 1 <= DateTime.MaxValue.Year) { DateTime date = new DateTime(dateTime.Year + 1, 1, dateTime.Day, calendar); output.Write("<div class=\"dpMnuSep\"></div>"); this.RenderMonthListItem(date, calendar, output, false, true); } if (dateTime.Year + 2 <= DateTime.MaxValue.Year) { DateTime date = new DateTime(dateTime.Year + 2, 1, dateTime.Day, calendar); this.RenderMonthListItem(date, calendar, output, false, true); } output.Write("</div>"); }
public void PosTest4() { DateTime initialTime; int months; DateTime resultingTime; System.Globalization.Calendar myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); months = -1; long maxTimeInTicks = myCalendar.MaxSupportedDateTime.Ticks; long minTimeInTikcs = myCalendar.MinSupportedDateTime.Ticks; initialTime = new DateTime(_generator.GetInt64(-55) % (maxTimeInTicks + 1)); resultingTime = myCalendar.AddMonths(initialTime, months); VerifyAddMonthsResult(myCalendar, initialTime, resultingTime, months); }
public static void Main() { // Sets a DateTime to April 3, 2002 of the Gregorian calendar. DateTime myDT = new DateTime(2002, 4, 3, new GregorianCalendar()); // Creates an instance of the GregorianCalendar. GregorianCalendar myCal = new GregorianCalendar(); // Displays the values of the DateTime. Console.WriteLine("April 3, 2002 of the Gregorian calendar:"); DisplayValues(myCal, myDT); // Adds two years and ten months. myDT = myCal.AddYears(myDT, 2); myDT = myCal.AddMonths(myDT, 10); // Displays the values of the DateTime. Console.WriteLine("After adding two years and ten months:"); DisplayValues(myCal, myDT); }
private long GetNextPoint(ref DateTime t, int unit, int unitSteps) { switch (unit) { case 0: t = gc.AddSeconds(t, unitSteps); break; case 1: t = gc.AddMinutes(t, unitSteps); break; case 2: t = gc.AddHours(t, unitSteps); break; case 3: t = gc.AddDays(t, unitSteps); break; case 4: t = gc.AddWeeks(t, unitSteps); break; case 5: t = gc.AddMonths(t, unitSteps); break; case 6: t = gc.AddYears(t, unitSteps); break; default: break; } return(Util.TicksToMillis(t.Ticks)); }
private void RenderMonth(TextWriter writer, SuggestionDayResult[] dayResults, bool?workingHoursOnly) { Calendar calendar = new GregorianCalendar(); int weekStartDay = (int)this.owaContext.UserContext.UserOptions.WeekStartDay; this.dates = new DateTime[42]; int num = -this.offset; for (int i = 0; i < 42; i++) { this.dates[i] = calendar.AddDays(this.firstDayInCurrentMonth, num); num++; } string arg = (workingHoursOnly == null) ? "dpht" : "dphst"; writer.Write("<table cellpadding=3 cellspacing=0 class=\"{0}\">", arg); writer.Write("<tr"); if (workingHoursOnly == null && this.selectedDate.Year == this.currentDate.Year && this.selectedDate.Month == this.currentDate.Month) { writer.Write(" class=\"c\""); } writer.Write("><td align=\"left\">"); DateTime dateTime = calendar.AddMonths(this.selectedDate, -1); writer.Write("<a href=\"#\" onClick=\"return onClkD({0},{1},{2});\" title=\"{3}\"><img src=\"", new object[] { dateTime.Year, dateTime.Month, dateTime.Day, LocalizedStrings.GetHtmlEncoded(344592200) }); this.owaContext.UserContext.RenderThemeFileUrl(writer, ThemeFileId.PreviousArrow); writer.Write("\" alt=\""); writer.Write(LocalizedStrings.GetHtmlEncoded(344592200)); writer.Write("\"></a></td>"); writer.Write("<td nowrap align=\"center\" class=\"m\">"); writer.Write(this.selectedDate.ToString("MMMM yyyy")); writer.Write("</td><td align=\"right\">"); DateTime dateTime2 = calendar.AddMonths(this.selectedDate, 1); writer.Write("<a href=\"#\" onClick=\"return onClkD({0},{1},{2});\" title=\"{3}\"><img src=\"", new object[] { dateTime2.Year, dateTime2.Month, dateTime2.Day, LocalizedStrings.GetHtmlEncoded(1040160067) }); this.owaContext.UserContext.RenderThemeFileUrl(writer, ThemeFileId.NextArrow); writer.Write("\" alt=\"{0}\"></a></td></tr></table>", LocalizedStrings.GetHtmlEncoded(1040160067)); string[] oneLetterDayNames = Culture.GetOneLetterDayNames(); arg = ((workingHoursOnly == null) ? "dp" : "dpst"); writer.Write("<table cellspacing=0 cellpadding=0 class=\"{0}\"><tr>", arg); if (this.showWeekNumbers) { writer.Write("<td> </td>"); } int j = 0; int num2 = weekStartDay; while (j < 7) { writer.Write("<td align=\"center\">"); writer.Write(oneLetterDayNames[num2 % 7]); writer.Write("</td>"); j++; num2++; } writer.Write("</tr>"); this.RenderDays(writer, dayResults, workingHoursOnly); writer.Write("</table>"); }
private void RenderDays(TextWriter writer, SuggestionDayResult[] dayResults, bool?workingHoursOnly) { Calendar calendar = new GregorianCalendar(); DayOfWeek weekStartDay = this.owaContext.UserContext.UserOptions.WeekStartDay; CalendarWeekRule firstWeekOfYear = this.owaContext.UserContext.FirstWeekOfYear; DayOfWeek dayOfWeek = (weekStartDay + 6) % (DayOfWeek)7; int num = 0; int num2 = this.dates.Length / 7; DateTime dateTime = calendar.AddMonths(this.selectedDate, -1); DateTime dateTime2 = calendar.AddMonths(this.selectedDate, 1); bool flag = false; if (workingHoursOnly != null) { flag = true; } if (!flag) { this.GetFreeBusy(); } int num3 = -1; DateTime t = calendar.AddDays(this.selectedDate, 6); if (dayResults != null) { num3 = (dayResults[0].Date - this.startDate).Days; } bool flag2 = false; for (int i = 0; i < num2; i++) { writer.Write("<tr>"); if (this.showWeekNumbers) { int weekOfYear = calendar.GetWeekOfYear(this.dates[num], firstWeekOfYear, weekStartDay); writer.Write("<td align=\"center\" class=\"wk"); if (i == num2 - 1) { writer.Write(" lst"); } writer.Write("\">"); writer.Write(weekOfYear); writer.Write("</td>"); } for (int j = 0; j < 7; j++) { writer.Write("<td align=\"center\""); bool flag3 = true; if (flag) { if (num3 == -1 || num < num3) { DatePicker.RenderClass(writer, ref flag3, DatePicker.SuggestionQualityStyles[4]); } else { SuggestionDayResult suggestionDayResult = dayResults[num - num3]; if (suggestionDayResult != null) { Suggestion[] suggestionArray = suggestionDayResult.SuggestionArray; SuggestionQuality suggestionQuality; if (0 < suggestionArray.Length) { suggestionQuality = suggestionArray[0].SuggestionQuality; } else if (!this.owaContext.UserContext.WorkingHours.IsWorkDay(dayResults[num - num3].Date.DayOfWeek)) { suggestionQuality = (SuggestionQuality)4; } else { suggestionQuality = SuggestionQuality.Poor; } DatePicker.RenderClass(writer, ref flag3, DatePicker.SuggestionQualityStyles[(int)suggestionQuality]); } } } else if (this.freeBusyData[num] != '0') { DatePicker.RenderClass(writer, ref flag3, "fb"); } if (this.indexMonthStart > num || this.indexMonthEnd < num) { DatePicker.RenderClass(writer, ref flag3, "pn"); } if (this.dates[num].ToShortDateString() == this.currentDate.ToShortDateString()) { DatePicker.RenderClass(writer, ref flag3, "td"); } if (!flag) { if (this.dates[num].Date == this.selectedDate.Date) { DatePicker.RenderClass(writer, ref flag3, "sd"); } } else if (this.dates[num] >= this.selectedDate && this.dates[num] <= t) { if (workingHoursOnly != null && workingHoursOnly == true) { if (this.owaContext.UserContext.WorkingHours.IsWorkDay(this.dates[num].DayOfWeek) || num == 0) { if (!flag2) { DatePicker.RenderClass(writer, ref flag3, "sd"); DatePicker.RenderClass(writer, ref flag3, "tb"); flag2 = true; } else { DatePicker.RenderClass(writer, ref flag3, "tb"); } } if (this.dates[num].ToShortDateString() == t.ToShortDateString() && flag2) { DatePicker.RenderClass(writer, ref flag3, "tb"); DatePicker.RenderClass(writer, ref flag3, "r"); flag2 = false; } if ((!this.owaContext.UserContext.WorkingHours.IsWorkDay(calendar.AddDays(this.dates[num], 1).DayOfWeek) || j == 6) && flag2) { DatePicker.RenderClass(writer, ref flag3, "tb"); DatePicker.RenderClass(writer, ref flag3, "r"); flag2 = false; } } else { if (!flag2) { DatePicker.RenderClass(writer, ref flag3, "sd"); DatePicker.RenderClass(writer, ref flag3, "tb"); flag2 = true; } else { DatePicker.RenderClass(writer, ref flag3, "tb"); } if (this.dates[num].ToShortDateString() == t.ToShortDateString() && flag2) { DatePicker.RenderClass(writer, ref flag3, "tb"); DatePicker.RenderClass(writer, ref flag3, "r"); flag2 = false; } if (this.dates[num].DayOfWeek == dayOfWeek) { DatePicker.RenderClass(writer, ref flag3, "tb"); DatePicker.RenderClass(writer, ref flag3, "r"); flag2 = false; } } } if (!flag3) { writer.Write("\""); } writer.Write("><a href=\"#\" onClick=\"return onClkD("); if (this.indexMonthStart > num) { writer.Write("{0},{1},", dateTime.Year, dateTime.Month); } else if (this.indexMonthEnd < num) { writer.Write("{0},{1},", dateTime2.Year, dateTime2.Month); } else { writer.Write("{0},{1},", this.selectedDate.Year, this.selectedDate.Month); } writer.Write("{0})\">", this.dates[num].Day); string daysFormat = DateTimeUtilities.GetDaysFormat(this.owaContext.UserContext.UserOptions.DateFormat); writer.Write(this.dates[num].ToString(daysFormat ?? "%d")); writer.Write("</a></td>"); num++; } writer.Write("</tr>"); } }