آموزش کار با تقویم شمسی در سی شارپ با استفاده از کتابخانه های NuGet
آموزش کار با تقویم شمسی در سی شارپ با استفاده از کتابخانه های NuGet
آموزش کار با تقویم شمسی در سی شارپ
تعیین تاریخ شمسی و از آن مهم تر تعیین روزها و ماه های سال به نوشتار فارسی همواره یکی از مشکلات برنامه نویسان تازه کار است، در این پست قصد داریم یکی از کتابخانه های تقویم شمسی در مخزن NuGet را معرفی کنیم.
با استفاده از این کتابخانه به راحتی هر چه تمام تر قادر به رفع مشکلاتی از این قبیل خواهید بود.
- تبدیل تاریخ میلادی به شمسی
- تعیین روزهای هفته (شنبه،یکشنبه و ...)
- تعیین ماه های سال (فروردین، اردیبهشت و...)
- بدست آموردن فقط تاریخ به صورتی عددی
- بدست آوردن ساعت
- تبدیل تاریخ شمسی به میلادی
این کتابخانه شامل کلاسی به نام PersianDateTime است. که برنامه نویسان را قادر به استفاده از ان در مقابل ساختار System.DateTime می نماید. همچنین PersianDateTime در برگیرنده بسیاری از متدها و خصیصه های متداول ساختار از قبیل DateTime و DateTime.TimeOfDay می باشد.
برای نصب این کتابخانه می توانید از سایت NuGet آن را دانلود کنید و یا در ویژوال استادیو به منوی Tools بروید و از طریق زیر منوی NuGet Package Manager گزینه Package Manage Console را انتخاب کنید.
بعد از باز شدن کنسول NuGet ، دستور Install-Package PersianDateTime را تایپ کنید و کلید اینتر را فشار دهید.
خصیصه PersianDateTime.Now یک شی از کلاس PersianDateTime را با قابلیت تاریخ کامل جلالی را بر می گرداند.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IranganjPersianDateTime { class Program { static void Main(string[] args) { Console.WriteLine(PersianDateTime.Now); Console.ReadKey(); } } }
همان طور که در کدهای زیر مشاهده می کنید. شی از کلاس PersianDateTime نمونه برداری شده است، سپس آن را با خصیصه PersianDateTime.Now مقدار دهی نمودایم. در پایان با استفاده از متد ToString() تاریخ و PersianDateTimeFormat.Date را به رشته متنی تبدیل کردیم و فقط تاریخ را نمایش داده ایم.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IranganjPersianDateTime { class Program { static void Main(string[] args) { PersianDateTime persianDateTime = PersianDateTime.Now; Console.WriteLine(persianDateTime.ToString(PersianDateTimeFormat.Date)); Console.ReadKey(); } } }
در زیر تاریخ را به صورت قالب دلخواه نمایش داده ایم.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IranganjPersianDateTime { class Program { static void Main(string[] args) { PersianDateTime persianDateTime = PersianDateTime.Now; Console.WriteLine(persianDateTime.ToString("dddd d MMMM yyyy ساعت hh:mm:ss tt")); Console.ReadKey(); } } }
نمایش زمان
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IranganjPersianDateTime { class Program { static void Main(string[] args) { PersianDateTime persianDateTime = PersianDateTime.Now; Console.WriteLine(persianDateTime.TimeOfDay); Console.ReadKey(); } } }
تبدیل تاریخ شمسی و میلادی
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IranganjPersianDateTime { class Program { static void Main(string[] args) { PersianDateTime persianDateTime = PersianDateTime.Parse("1394/12/06"); DateTime dateTime = persianDateTime.ToDateTime(); Console.WriteLine(dateTime); Console.ReadKey(); } } }
در مثال زیر 5 روز به تاریخ مورد نظر اضافه کردیم و نمایش داده ایم.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IranganjPersianDateTime { class Program { static void Main(string[] args) { PersianDateTime persianDateTime = PersianDateTime.Parse("1394/12/06"); PersianDateTime newdate = persianDateTime.AddDays(5); Console.WriteLine(newdate); Console.ReadKey(); } } }
در مثال زیر دو تاریخ را از هم کم کرده ایم.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IranganjPersianDateTime { class Program { static void Main(string[] args) { PersianDateTime persianDateTime = PersianDateTime.Parse("1394/12/06"); PersianDateTime newdate = persianDateTime.AddDays(5); TimeSpan timeSpan = newdate - persianDateTime; Console.WriteLine(timeSpan); Console.ReadKey(); } } }
نظر / سوال