public static SqlDateTime TA_ASM_CalculateFromDateRange(DateTime dt, int RangeOrder, int RangeFromMonth, int RangeFromDay, int RangeToMonth, int RangeToDay, int culture) { try { Calendar calendar = null; switch (culture) { case 1: calendar = new PersianCalendar(); break; default: calendar = new GregorianCalendar(); break; } if (RangeOrder == 1 && RangeFromMonth > RangeToMonth) { //در اولین بازه محدوده، ماه شروع در سال قبل قرار گرفته dt = calendar.AddYears(dt, -1); } else if (RangeOrder == 0 && RangeFromMonth >= RangeToMonth) { //بازه سالانه است و شروع در سال قبل قرار گرفته dt = calendar.AddYears(dt, -1); } return(calendar.ToDateTime(calendar.GetYear(dt), RangeFromMonth, RangeFromDay, 0, 0, 0, 0)); } catch (Exception ex) { throw new Exception(String.Format("GTS CalculateFromDateRange Exception:{0}", ex.Message)); } }
public void AddYearOnLeapYear() { GregorianCalendar c = new GregorianCalendar(); DateTime d = new DateTime(2004, 2, 29); DateTime prev = c.AddYears(d, -1); Assert.AreEqual(2, prev.Month, "prev"); DateTime next = c.AddYears(d, 1); Assert.AreEqual(2, next.Month, "next"); }
public static SqlDateTime TA_ASM_CalculateToDateRange(DateTime dt, int RangeOrder, int RangeFromMonth, int RangeFromDay, int RangeToMonth, int RangeToDay, int culture) { try { Calendar calendar = null; switch (culture) { case 1: calendar = new PersianCalendar(); break; default: calendar = new GregorianCalendar(); break; } if (RangeOrder == 12 && RangeFromMonth > RangeToMonth) { //در آخرین بازه محدوده، ماه پایان در سال بعد قرار گرفته dt = calendar.AddYears(dt, 1); } else if (RangeOrder == 0 && RangeFromMonth >= RangeToMonth) { //بازه سالانه است و پایان در سال بعد قرار گرفته dt = calendar.AddYears(dt, 1); } if (calendar is PersianCalendar) { if (calendar.IsLeapYear(calendar.GetYear(dt)) && RangeToMonth == 12 && RangeToDay == 29) { return(calendar.ToDateTime(calendar.GetYear(dt), RangeToMonth, 30, 0, 0, 0, 0)); } else { return(calendar.ToDateTime(calendar.GetYear(dt), RangeToMonth, RangeToDay, 0, 0, 0, 0)); } } else { if (calendar.IsLeapYear(dt.Year) && RangeToMonth == 2 && RangeToDay == 28) { //اگر سال کبسه بود و برای ماه فوریه روز 28 انتخاب شده بود //به صورت خودکار با روز 29 جایگزین می شود return(calendar.ToDateTime(dt.Year, RangeToMonth, 29, 0, 0, 0, 0)); } else { return(calendar.ToDateTime(dt.Year, RangeToMonth, RangeToDay, 0, 0, 0, 0)); } } } catch (Exception ex) { throw new Exception(String.Format("GTS CalculateFromDateRange Exception:{0}", ex.Message)); } }
/// <summary> /// Returns a DateTime that is the specified number of years away from /// the specified DateTime. /// </summary> /// <param name="day">The DateTime to which to add years.</param> /// <param name="years">The number of years to add.</param> /// <returns> /// The DateTime that results from adding the specified number of years /// to the specified DateTime. /// </returns> public override DateTime?AddYears(DateTime day, int years) { try { return(_calendar.AddYears(day, years)); } catch (ArgumentException) { return(null); } }
public void PosTest6() { DateTime initialTime; int years; DateTime resultingTime; System.Globalization.Calendar myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); years = 4; initialTime = myCalendar.ToDateTime(1996, 2, 29, 10, 30, 24, 0); resultingTime = myCalendar.AddYears(initialTime, years); VerifyAddyearsResult(myCalendar, initialTime, resultingTime, years); }
public void PosTest3() { DateTime initialTime; int years; DateTime resultingTime; System.Globalization.Calendar myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); years = -99; initialTime = myCalendar.MaxSupportedDateTime; resultingTime = myCalendar.AddYears(initialTime, years); VerifyAddyearsResult(myCalendar, initialTime, resultingTime, years); }
public void PosTest1() { DateTime initialTime; int years; DateTime resultingTime; System.Globalization.Calendar myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); years = 0; initialTime = DateTime.Now; resultingTime = myCalendar.AddYears(initialTime, years); Assert.Equal(initialTime, resultingTime); }
public static DateTime?AddYears(DateTime time, int years) { System.Globalization.Calendar cal = new GregorianCalendar(); try { return(cal.AddYears(time, years)); } catch (ArgumentException) { return(null); } }
public void NegTest1() { DateTime time; int years; System.Globalization.Calendar myCalendar; time = DateTime.Now; years = 9999; myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); Assert.Throws <ArgumentOutOfRangeException>(() => { myCalendar.AddYears(time, years); }); }
public void PosTest4() { DateTime initialTime; int years; DateTime resultingTime; System.Globalization.Calendar myCalendar = new GregorianCalendar(GregorianCalendarTypes.USEnglish); years = 1; long maxTimeInTicks = myCalendar.MaxSupportedDateTime.Ticks; long minTimeInTikcs = myCalendar.MinSupportedDateTime.Ticks; initialTime = new DateTime(_generator.GetInt64(-55) % maxTimeInTicks); resultingTime = myCalendar.AddYears(initialTime, years); VerifyAddyearsResult(myCalendar, initialTime, resultingTime, years); }
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)); }