Example #1
0
        [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);
     }
 }
Example #3
0
        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);
        }
Example #4
0
        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);
     }
 }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
            });
        }
Example #9
0
        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);
            });
        }
Example #10
0
        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>");
        }
Example #11
0
        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);
        }
Example #12
0
    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);
    }
Example #13
0
        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));
        }
Example #14
0
        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>&nbsp;</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>");
        }
Example #15
0
        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>");
            }
        }