نوشته شده توسط
ali.bahrami
سلام دوستان، توی تاپیک ها جستجو کردم ولی به نتیجه ای نرسیدم
می خوام تاریخ شمسی را به قمری تبدیل کنم چه فرمولی پیشنهاد میکنید؟
تقویم قمری که همون System.Globalization.HijriCalendar ئه و بر اساس فرمول ریاضی و موقعیت ماه نسبت به زمین تاریخ قمری رو بدست میاره.
اما کاری به رویت ماه و وضعیت آب و هوایی و روز قدس و ... نداره، برای همین با تقویم کشوری هماهنگ نیست، باید قبل استفاده تنظیم بشه.
بر اساس اینکه کجا زندگی می کنید و رویت ماه و تقویم رسمی و ... مقدار HijriAdjustment رو بین 2- الی 2+ تنظیم می کنید که روز بدست اومده رو جلو و عقب می کنه.
var persian = new System.Globalization.PersianCalendar();
var hijri = new System.Globalization.HijriCalendar() {HijriAdjustment = -1};
var d = persian.ToDateTime(1399, 1, 11, 0, 0, 0, 0); // 1399/01/11
var h = string.Format("{0:0000}/{1:00}/{2:00}", hijri.GetYear(d), hijri.GetMonth(d), hijri.GetDayOfMonth(d));
MessageBox.Show(h);