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; }
//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); }
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)); }
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; }
//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); }
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); }
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; }