public void Test_GK() { double jd; int year, month, day; const double needJD = 2448174.5; // 1990-10-10 [g], 1990-09-27 [j], 5751-07-21 [h] //for (int i = 0; i < 1000000; i++) { jd = CalendarConverter.gregorian_to_jd2(-4713, 11, 24); Assert.AreEqual(0.0, jd); jd = CalendarConverter.gregorian_to_jd(1990, 10, 10); Assert.AreEqual(needJD, jd); jd = CalendarConverter.julian_to_jd(1990, 09, 27); Assert.AreEqual(needJD, jd); jd = CalendarConverter.hebrew_to_jd(5751, 07, 21); Assert.AreEqual(needJD, jd); //} jd = CalendarConverter.gregorian_to_jd2(1990, 10, 10); CalendarConverter.jd_to_gregorian2((int)jd, out year, out month, out day); Assert.AreEqual(1990, year, "g2jd 1"); Assert.AreEqual(10, month, "g2jd 2"); Assert.AreEqual(10, day, "g2jd 3"); }
public override string ToString() { int y = 0, m = 0, d = 0; if (HasKnownYear() || HasKnownMonth() || HasKnownDay()) { int unmaskedVal = GetUnmaskedValue(); CalendarConverter.jd_to_gregorian2(unmaskedVal, out y, out m, out d); } int sign = Math.Sign(y); y = Math.Abs(y); string sy = HasKnownYear() ? y.ToString().PadLeft(4, '0') : "????"; if (sign == -1) { sy = "-" + sy; } string sm = HasKnownMonth() ? m.ToString().PadLeft(2, '0') : "??"; string sd = HasKnownDay() ? d.ToString().PadLeft(2, '0') : "??"; string result = string.Format("{0}/{1}/{2}", sy, sm, sd); if (IsApproximateDate()) { result = "~" + result; } else if (IsDateBefore()) { result = "<" + result; } else if (IsDateAfter()) { result = ">" + result; } return(result); }