예제 #1
0
        public static void JulianDayToLocal(SPCalendarType calType, int jDay, IntlDate id)
        {
            SimpleDate simpleDate = new SimpleDate(0, 0, 0);

            SPIntlCal.GetLocalCalendar(calType).JulianDayToDate(jDay, ref simpleDate, 0, 0);
            id.Init(simpleDate.Year, simpleDate.Month, simpleDate.Day, simpleDate.Era, calType);
        }
 public virtual bool IsSupportedDate(ref SimpleDate di)
 {
     if (SPCalendarUtil.IsDateInRange(di.Year, di.Month, di.Day, 1601, 1, 1, 8900, 12, 31) && di.Month >= 1)
     {
         return(false);// di.Month <= SolarCalendarImpl.MonthsInYear();
     }
     return(false);
 }
 public virtual int MonthsInYear(ref SimpleDate di)
 {
     if (!this.IsSupportedYear(di.Year))
     {
         throw new ArgumentOutOfRangeException("di");
     }
     return(-1);//SolarCalendarImpl.MonthsInYear();
 }
 public virtual int DateToJulianDay(ref SimpleDate di, int iAdvance, int jDayCurrent)
 {
     if (!this.IsSupportedDate(ref di))
     {
         throw new ArgumentOutOfRangeException("di");
     }
     return(-1);// GregorianCalendarImpl.DateToJulianDay(di.Year + this.GetEraOffset(di.Era), di.Month, di.Day);
 }
 public virtual int DaysInMonth(ref SimpleDate di)
 {
     if (!this.IsSupportedMonth(di.Year, di.Month))
     {
         throw new ArgumentOutOfRangeException("di");
     }
     return(-1);// GregorianCalendarImpl.DaysInMonth(di.Year + this.GetEraOffset(di.Era), di.Month);
 }
 public virtual void JulianDayToDate(int jDay, ref SimpleDate di, int iAdvance, int jDayCurrent)
 {
     if (!this.IsSupportedJulianDay(jDay))
     {
         throw new ArgumentOutOfRangeException("jDay");
     }
     //GregorianCalendarImpl.JulianDayToDate(jDay, ref di);
     di.Year -= this.GetEraOffset(di.Era);
     di.Era   = 1;
 }
 public virtual bool IsDateValid(ref SimpleDate di, int iAdvance, int jDayCurrent)
 {
     if (this.IsSupportedDate(ref di) && di.Day > 0)
     {
         if (di.Day >= 29)
         {
             return(false);// di.Day <= GregorianCalendarImpl.DaysInMonth(di.Year + this.GetEraOffset(di.Era), di.Month);
         }
         return(true);
     }
     return(false);
 }
예제 #8
0
        public static int GetWeekNumber(SPCalendarType calType, SimpleDate di, int FirstDayOfWeek, short FirstWeekOfYear)
        {
            int num  = di.Day;
            int num2 = di.Month;

            while (--num2 > 0)
            {
                SimpleDate simpleDate = new SimpleDate(di.Year, num2, 1);
                num += SPIntlCal.DaysInLocalMonth(calType, ref simpleDate);
            }
            SimpleDate simpleDate2 = new SimpleDate(di.Year, 1, 1, di.Era);
            int        num3        = SPIntlCal.LocalToJulianDay(calType, ref simpleDate2);
            int        num4        = (num3 + 1) % 7;
            int        num5        = (num - 1) / 7 + 1;

            if (num4 < FirstDayOfWeek)
            {
                num4 += 7;
            }
            if (FirstDayOfWeek < 7 && FirstDayOfWeek >= 0)
            {
                if (FirstWeekOfYear == 2 && num4 > FirstDayOfWeek + 3)
                {
                    goto IL_0097;
                }
                if (FirstWeekOfYear == 1 && num4 != FirstDayOfWeek)
                {
                    goto IL_0097;
                }
            }
            goto IL_009b;
IL_009b:
            return(num5);

IL_0097:
            num5--;
            goto IL_009b;
        }
예제 #9
0
 public static int LocalToJulianDay(SPCalendarType calType, ref SimpleDate di)
 {
     return(SPIntlCal.GetLocalCalendar(calType).DateToJulianDay(ref di, 0, 0));
 }
예제 #10
0
 public static int MonthsInLocalYear(SPCalendarType calType, ref SimpleDate di)
 {
     return(SPIntlCal.GetLocalCalendar(calType).MonthsInYear(ref di));
 }
예제 #11
0
 public static int DaysInLocalMonth(SPCalendarType calType, ref SimpleDate di, int iAdvance)
 {
     return(SPIntlCal.GetLocalCalendar(calType).DaysInMonth(ref di, iAdvance));
 }
 public virtual int DaysInMonth(ref SimpleDate di, int iAdvance)
 {
     return(this.DaysInMonth(ref di));
 }
예제 #13
0
 public static void JulianDayToLocal(SPCalendarType calType, int jDay, ref SimpleDate di)
 {
     SPIntlCal.GetLocalCalendar(calType).JulianDayToDate(jDay, ref di, 0, 0);
 }
예제 #14
0
        public static int LocalToJulianDay(SPCalendarType calType, IntlDate id)
        {
            SimpleDate simpleDate = new SimpleDate(id.Year, id.Month, id.Day, id.Era);

            return(SPIntlCal.GetLocalCalendar(calType).DateToJulianDay(ref simpleDate, 0, 0));
        }
예제 #15
0
 public static bool IsSupportedLocalDate(SPCalendarType calType, ref SimpleDate di)
 {
     return(SPIntlCal.GetLocalCalendar(calType).IsSupportedDate(ref di));
 }
예제 #16
0
 public static bool IsLocalDateValid(SPCalendarType calType, ref SimpleDate di, int iAdvance, int jDayCurrent)
 {
     return(SPIntlCal.GetLocalCalendar(calType).IsDateValid(ref di, iAdvance, jDayCurrent));
 }
예제 #17
0
 public static bool IsLocalDateValid(SPCalendarType calType, ref SimpleDate di)
 {
     return(SPIntlCal.GetLocalCalendar(calType).IsDateValid(ref di, 0, 0));
 }
예제 #18
0
 public static int LocalToJulianDay(SPCalendarType calType, ref SimpleDate di, int iAdvance, int jDayCurrent)
 {
     return(SPIntlCal.GetLocalCalendar(calType).DateToJulianDay(ref di, iAdvance, jDayCurrent));
 }
예제 #19
0
 public static void JulianDayToLocal(SPCalendarType calType, int jDay, ref SimpleDate di, int iAdvance, int jDayCurrent)
 {
     SPIntlCal.GetLocalCalendar(calType).JulianDayToDate(jDay, ref di, iAdvance, jDayCurrent);
 }