public static CAACalendarDate JulianToMoslem(int Year, int Month, int Day)
    {
        //What will be the return value
        CAACalendarDate MoslemDate = new CAACalendarDate();

        int W = (Year % 4) == 0 ? 2 : 1;
        int N = CAADate.INT((275 * Month)/9.0) - (W *CAADate.INT((Month + 9)/12.0)) + Day - 30;
        int A = Year - 623;
        int B = CAADate.INT(A / 4.0);
        int C = A % 4;
        double C1 = 365.2501 *C;
        int C2 = CAADate.INT(C1);
        if ((C1 - C2) > 0.5)
          C2++;

        int Ddash = 1461 *B + 170 + C2;
        int Q = CAADate.INT(Ddash / 10631.0);
        int R = Ddash % 10631;
        int J = CAADate.INT(R / 354.0);
        int K = R % 354;
        int O = CAADate.INT((11 *J + 14) / 30);
        int H = 30 *Q + J + 1;
        int JJ = K - O + N - 1;

        if (JJ > 354)
        {
          int CL = H % 30;
          int DL = (11 *CL + 3) % 30;
          if (DL < 19)
          {
        JJ -= 354;
        H++;
          }
          else
          {
        JJ -= 355;
        H++;
          }
          if (JJ == 0)
          {
        JJ = 355;
        H--;
          }
        }

        int S = CAADate.INT((JJ - 1) / 29.5);
        MoslemDate.Month = 1 + S;
        MoslemDate.Day = CAADate.INT(JJ - 29.5 *S);
        MoslemDate.Year = H;

        if (JJ == 355)
        {
          MoslemDate.Month = 12;
          MoslemDate.Day = 30;
        }

        return MoslemDate;
    }
Example #2
0
//C++ TO C# CONVERTER NOTE: C# does not allow default values for parameters. Overloaded methods are inserted above.
//ORIGINAL LINE: static CAACalendarDate DateOfPesach(int Year, bool bGregorianCalendar = true)
    public static CAACalendarDate DateOfPesach(int Year, bool bGregorianCalendar)
    {
        //What will be the return value
        CAACalendarDate Pesach = new CAACalendarDate();

        int C = CAADate.INT(Year / 100.0);
        int S = CAADate.INT((3 * C - 5) / 4.0);

        if (bGregorianCalendar == false)
        {
            S = 0;
        }
        int    A    = Year + 3760;
        int    a    = (12 * Year + 12) % 19;
        int    b    = Year % 4;
        double Q    = -1.904412361576 + 1.554241796621 * a + 0.25 * b - 0.003177794022 * Year + S;
        int    INTQ = CAADate.INT(Q);
        int    j    = (INTQ + 3 * Year + 5 * b + 2 - S) % 7;
        double r    = Q - INTQ;

        if ((j == 2) || (j == 4) || (j == 6))
        {
            Pesach.Day = INTQ + 23;
        }
        else if ((j == 1) && (a > 6) && (r >= 0.632870370))
        {
            Pesach.Day = INTQ + 24;
        }
        else if ((j == 0) && (a > 11) && (r >= 0.897723765))
        {
            Pesach.Day = INTQ + 23;
        }
        else
        {
            Pesach.Day = INTQ + 22;
        }

        if (Pesach.Day > 31)
        {
            Pesach.Month = 4;
            Pesach.Day  -= 31;
        }
        else
        {
            Pesach.Month = 3;
        }

        Pesach.Year = A;

        return(Pesach);
    }
Example #3
0
    public static int DaysInYear(int Year)
    {
        //Find the previous civil year corresponding to the specified jewish year
        int CivilYear = Year - 3761;

        //Find the date of the next Jewish Year in that civil year
        CAACalendarDate CurrentPesach = DateOfPesach(CivilYear);
        bool            bGregorian    = CAADate.AfterPapalReform(CivilYear, CurrentPesach.Month, CurrentPesach.Day);
        CAADate         CurrentYear   = new CAADate(CivilYear, CurrentPesach.Month, CurrentPesach.Day, bGregorian);

        CAACalendarDate NextPesach = DateOfPesach(CivilYear + 1);
        CAADate         NextYear   = new CAADate(CivilYear + 1, NextPesach.Month, NextPesach.Day, bGregorian);

        return((int)(NextYear - CurrentYear));
    }
Example #4
0
    public static CAACalendarDate GregorianToJulian(int Year, int Month, int Day)
    {
        CAADate date = new CAADate(Year, Month, Day, true);

        date.SetInGregorianCalendar(false);

        CAACalendarDate JulianDate = new CAACalendarDate();
        int             Hour       = 0;
        int             Minute     = 0;
        double          Second     = 0;

        date.Get(ref JulianDate.Year, ref JulianDate.Month, ref JulianDate.Day, ref Hour, ref Minute, ref Second);

        return(JulianDate);
    }
    //C++ TO C# CONVERTER NOTE: C# does not allow default values for parameters. Overloaded methods are inserted above.
    //ORIGINAL LINE: static CAACalendarDate DateOfPesach(int Year, bool bGregorianCalendar = true)
    public static CAACalendarDate DateOfPesach(int Year, bool bGregorianCalendar)
    {
        //What will be the return value
        var Pesach = new CAACalendarDate();

        var C = CAADate.INT(Year / 100.0);
        var S = CAADate.INT((3 *C - 5) / 4.0);
        if (bGregorianCalendar == false)
          S = 0;
        var A = Year + 3760;
        var a = (12 *Year + 12) % 19;
        var b = Year % 4;
        var Q = -1.904412361576 + 1.554241796621 *a + 0.25 *b - 0.003177794022 *Year + S;
        var INTQ = CAADate.INT(Q);
        var j = (INTQ + 3 *Year + 5 *b+ 2 - S) % 7;
        var r = Q - INTQ;

        if ((j == 2) || (j == 4) || (j == 6))
          Pesach.Day = INTQ + 23;
        else if ((j == 1) && (a > 6) && (r >= 0.632870370))
          Pesach.Day = INTQ + 24;
        else if ((j == 0) && (a > 11) && (r >= 0.897723765))
          Pesach.Day = INTQ + 23;
        else
          Pesach.Day = INTQ + 22;

        if (Pesach.Day > 31)
        {
          Pesach.Month = 4;
          Pesach.Day -= 31;
        }
        else
          Pesach.Month = 3;

        Pesach.Year = A;

        return Pesach;
    }
Example #6
0
//Static methods

    //////////////////////////// Implementation ///////////////////////////////////

    public static CAACalendarDate MoslemToJulian(int Year, int Month, int Day)
    {
        //What will be the return value
        CAACalendarDate JulianDate = new CAACalendarDate();

        int N  = Day + CAADate.INT(29.5001 * (Month - 1) + 0.99);
        int Q  = CAADate.INT(Year / 30.0);
        int R  = Year % 30;
        int A  = CAADate.INT((11 * R + 3) / 30.0);
        int W  = 404 * Q + 354 * R + 208 + A;
        int Q1 = CAADate.INT(W / 1461.0);
        int Q2 = W % 1461;
        int G  = 621 + 4 * CAADate.INT(7 * Q + Q1);
        int K  = CAADate.INT(Q2 / 365.2422);
        int E  = CAADate.INT(365.2422 * K);
        int J  = Q2 - E + N - 1;
        int X  = G + K;

        int XMod4 = X % 4;

        if ((J > 366) && (XMod4 == 0))
        {
            J -= 366;
            X++;
        }
        if ((J > 365) && (XMod4 > 0))
        {
            J -= 365;
            X++;
        }

        JulianDate.Year = X;
        CAADate.DayOfYearToDayAndMonth(J, CAADate.IsLeap(X, false), ref JulianDate.Day, ref JulianDate.Month);

        return(JulianDate);
    }
Example #7
0
    public static CAACalendarDate JulianToMoslem(int Year, int Month, int Day)
    {
        //What will be the return value
        CAACalendarDate MoslemDate = new CAACalendarDate();

        int    W  = (Year % 4) == 0 ? 2 : 1;
        int    N  = CAADate.INT((275 * Month) / 9.0) - (W * CAADate.INT((Month + 9) / 12.0)) + Day - 30;
        int    A  = Year - 623;
        int    B  = CAADate.INT(A / 4.0);
        int    C  = A % 4;
        double C1 = 365.2501 * C;
        int    C2 = CAADate.INT(C1);

        if ((C1 - C2) > 0.5)
        {
            C2++;
        }

        int Ddash = 1461 * B + 170 + C2;
        int Q     = CAADate.INT(Ddash / 10631.0);
        int R     = Ddash % 10631;
        int J     = CAADate.INT(R / 354.0);
        int K     = R % 354;
        int O     = CAADate.INT((11 * J + 14) / 30);
        int H     = 30 * Q + J + 1;
        int JJ    = K - O + N - 1;

        if (JJ > 354)
        {
            int CL = H % 30;
            int DL = (11 * CL + 3) % 30;
            if (DL < 19)
            {
                JJ -= 354;
                H++;
            }
            else
            {
                JJ -= 355;
                H++;
            }
            if (JJ == 0)
            {
                JJ = 355;
                H--;
            }
        }

        int S = CAADate.INT((JJ - 1) / 29.5);

        MoslemDate.Month = 1 + S;
        MoslemDate.Day   = CAADate.INT(JJ - 29.5 * S);
        MoslemDate.Year  = H;

        if (JJ == 355)
        {
            MoslemDate.Month = 12;
            MoslemDate.Day   = 30;
        }

        return(MoslemDate);
    }
Example #8
0
    public static CAACalendarDate JulianToGregorian(int Year, int Month, int Day)
    {
        var date = new CAADate(Year, Month, Day, false);
        date.SetInGregorianCalendar(true);

        var GregorianDate = new CAACalendarDate();
        var Hour = 0;
        var Minute = 0;
        double Second = 0;
        date.Get(ref GregorianDate.Year, ref GregorianDate.Month, ref GregorianDate.Day, ref Hour, ref Minute, ref Second);

        return GregorianDate;
    }
    public static CAACalendarDate GregorianToJulian(int Year, int Month, int Day)
    {
        CAADate date = new CAADate(Year, Month, Day, true);
        date.SetInGregorianCalendar(false);

        CAACalendarDate JulianDate = new CAACalendarDate();
        int Hour = 0;
        int Minute = 0;
        double Second = 0;
        date.Get(ref JulianDate.Year, ref JulianDate.Month, ref JulianDate.Day, ref Hour, ref Minute, ref Second);

        return JulianDate;
    }
    //Static methods
    //////////////////////////// Implementation ///////////////////////////////////
    public static CAACalendarDate MoslemToJulian(int Year, int Month, int Day)
    {
        //What will be the return value
        CAACalendarDate JulianDate = new CAACalendarDate();

        int N = Day + CAADate.INT(29.5001*(Month - 1) + 0.99);
        int Q = CAADate.INT(Year/30.0);
        int R = Year % 30;
        int A = CAADate.INT((11 *R + 3)/30.0);
        int W = 404 *Q + 354 *R + 208 + A;
        int Q1 = CAADate.INT(W/1461.0);
        int Q2 = W % 1461;
        int G = 621 + 4 *CAADate.INT(7 *Q + Q1);
        int K = CAADate.INT(Q2/365.2422);
        int E = CAADate.INT(365.2422 *K);
        int J = Q2 - E + N - 1;
        int X = G + K;

        int XMod4 = X % 4;
        if ((J > 366) && (XMod4 == 0))
        {
          J -= 366;
          X++;
        }
        if ((J > 365) && (XMod4 > 0))
        {
          J -= 365;
          X++;
        }

        JulianDate.Year = X;
        CAADate.DayOfYearToDayAndMonth(J, CAADate.IsLeap(X, false), ref JulianDate.Day, ref JulianDate.Month);

        return JulianDate;
    }