PDA

View Full Version : حرفه ای: محاسبه تاریخ اشتباه در HijriCalendar



mohammad diba
پنج شنبه 21 آذر 1398, 17:56 عصر
با سلام دوستان من یک تاریخ شمسی رو با کد زیر تبدیل به قمری کردم ولی به جای 1441/3/24 تاریخ 1441/3/25 رو میده

PersianCalendar p = new PersianCalendar();
HijriCalendar h = new HijriCalendar();
DateTime dt =new DateTime(1398, 09, 1, 12, 24, 32, 12, p, DateTimeKind.Local);
int y = h.GetYear(dt);
int m = h.GetMonth(dt);
int d = h.GetDayOfMonth(dt);
MessageBox.Show(y.ToString()+"/"+m.ToString()+"/"+d.ToString());

the king
پنج شنبه 21 آذر 1398, 18:32 عصر
با سلام دوستان من یک تاریخ شمسی رو با کد زیر تبدیل به قمری کردم ولی به جای 1441/3/24 تاریخ 1441/3/25 رو میده

PersianCalendar p = new PersianCalendar();
HijriCalendar h = new HijriCalendar();
DateTime dt =new DateTime(1398, 09, 1, 12, 24, 32, 12, p, DateTimeKind.Local);
int y = h.GetYear(dt);
int m = h.GetMonth(dt);
int d = h.GetDayOfMonth(dt);
MessageBox.Show(y.ToString()+"/"+m.ToString()+"/"+d.ToString());

همینطوریه. این تقویم قمری نجومی ئه، کاری به رویت ماه و روز قدس و پشت بام نداره. برای همین خیلی عادیه که با تقویم رسمی یا شرعی تا دو روز اختلاف داشته باشه.
در ضمن خروجی محاسباتش با h.HijriAdjustment تنظیم میشه، اگه یک h.HijriAdjustment = -1 بهش اضافه کنید فعلا مطابق میشه.