این قطعه کد را برای نمایش تاریخ امروز، به قمری درنظر بگیرید:
در قطعه کد فوق، d، روز را به عدد، MMMM، ماه را به حروف و yyyy، سال را به رقم نمایش میدهد (اطلاعات بیشتر) و انتخاب فرهنگ عربستان سعودی، سبب تبدیل این تاریخ به قمری خواهد شد. اگر بجای آن fa-IR را قرار دهیم، تاریخ میلادی سیستم را به شمسی تبدیل میکند و خروجی آن بر اساس فرهنگ ar-SA در امروز، بر روی سیستم من، چنین چیزی است:
9 صفر 1438
اگر به سایت http://time.irمراجعه کنیم، امروز را «8 صفر» معرفی کردهاست.
سؤال:مشکل کجاست؟ آیا پیاده سازی تاریخ قمری در دات نت مشکل دارد؟
پاسخ:این مساله مرتبط به دات نت فریم ورک نیست و به تنظیمات ویندوز بر میگردد:
همانطور که در اینجا مشاهده میکنید، اگر به کنترل پنل، قسمت Region آن مراجعه کرده و در برگهی باز شده، بر روی دکمهی additional settings کلیک کنیم، امکان انتخاب تاریخ قمری هم وجود دارد و در اینجا به ازای روز جاری، 5 روز و تاریخ مختلف را میتوان انتخاب کرد (بسته به موقعیت جغرافیایی).
پس از این تنظیم است که قطعه کد فوق، تاریخ روز جاری را به قمری به نحو صحیحی نمایش میدهد.
using System; using System.Globalization; namespace ArabicDate { class Program { static void Main(string[] args) { var now = DateTime.Now; var date = now.ToString("d MMMM yyyy", new CultureInfo("ar-SA")); Console.WriteLine(date); } } }
9 صفر 1438
اگر به سایت http://time.irمراجعه کنیم، امروز را «8 صفر» معرفی کردهاست.
سؤال:مشکل کجاست؟ آیا پیاده سازی تاریخ قمری در دات نت مشکل دارد؟
پاسخ:این مساله مرتبط به دات نت فریم ورک نیست و به تنظیمات ویندوز بر میگردد:
همانطور که در اینجا مشاهده میکنید، اگر به کنترل پنل، قسمت Region آن مراجعه کرده و در برگهی باز شده، بر روی دکمهی additional settings کلیک کنیم، امکان انتخاب تاریخ قمری هم وجود دارد و در اینجا به ازای روز جاری، 5 روز و تاریخ مختلف را میتوان انتخاب کرد (بسته به موقعیت جغرافیایی).
پس از این تنظیم است که قطعه کد فوق، تاریخ روز جاری را به قمری به نحو صحیحی نمایش میدهد.