مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

peymanfilm

عضویت از 1392/09/29

کار نکردن تقویم هجری

  • پنجشنبه 1 تیر 1396
  • 11:58
تشکر میکنم

با سلام و خسته نباشید

تاریخ ها رو نیاز دارم. تاریخ میلادی و شمسی درست نمایش داده می شود ولی تاریخ قمری با یکی دو روز عقب و جلو نمایش داده می شود. مثلا ماه رمضان را یک روز جلوتر و ماه رجب را دو روز جلوتر نمایش می دهد. این مشکل برای تاریخ های میلادی و شمسی وجود ندارد و فقط تاریخ قمری است که به درستی نمایش داده نمی شود. لطفا راهنمایی فرمایید.

        public static string ToHihriDateTimeMonasebat(this DateTime _datetime)
        {
            DateTime datetime = DateTime.Parse(_datetime.ToMiladiDateTime().ToString());

            DateTime dt = new DateTime(
                Int32.Parse(datetime.ToString("yyyy")),
                Int32.Parse(datetime.ToString("MM")),
                Int32.Parse(datetime.ToString("dd")));  // Gregorian

            HijriCalendar hijri = new HijriCalendar();

            string _year = hijri.GetYear(dt).ToString();       // 1434
            string _month = hijri.GetMonth(dt).ToString();      // 11
            string _day = hijri.GetDayOfMonth(dt).ToString(); // 23

            return string.Format("{0}/{1}/{2}", _year, _month, _day );

        }

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 1 تیر 1396
  • 12:09

من از این کدها استفاده میکنم

تاریخ شمسی

System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
            string Date = pc.GetYear(DateTime.Now) + "/" + pc.GetMonth(DateTime.Now) + "/" + pc.GetDayOfMonth(DateTime.Now);

تاریخ قمری

System.Globalization.HijriCalendar pc = new System.Globalization.HijriCalendar();
            string date = DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString() + "/" + DateTime.Now.Day.ToString();

تاریخ میلادی

System.Globalization.GregorianCalendar pc = new System.Globalization.GregorianCalendar();
            string date = pc.GetYear(DateTime.Now) + "/" + pc.GetMonth(DateTime.Now) + "/" + pc.GetDayOfMonth(DateTime.Now);

کاربر سایت

booysusa

عضویت از 1393/04/20

  • شنبه 12 آبان 1397
  • 18:02

برای تاریخ قمری خطا میده جناب مدائنی عزیز

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 12 آبان 1397
  • 18:25

تست شد ، مشکلی نداشت 

من خودم دارم استفاده میکنم 

کاربر سایت

booysusa

عضویت از 1393/04/20

  • شنبه 12 آبان 1397
  • 22:06

بنظرتون از چی میتونه باشه؟

زیر Date و pc خط قرمز اومده

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 13 آبان 1397
  • 08:53

ll;kaممکنه نام هایی که گذاشتید تکراری باشه 

کاربر سایت

booysusa

عضویت از 1393/04/20

  • یکشنبه 13 آبان 1397
  • 10:34

بله بنظرم بخاطر تکراری بودن هست

Date رو به Date1 و pc رو به pc1 تغییر دادم

الان که ویرایش کردم بجای تقویم قمری همون شمسی رو نشون میده

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)