جدول محتوایی
آموزش DateTime در سی شارپ
زمانی که نیاز به کار با تاریخها و زمانها در سی شارپ باشد، از DateTime استفاده میکنیم. ما می توانیم تاریخ و زمان را در قالب های مختلف با ویژگی ها و روش های DateTime./p> قالب بندی کنیم.
مقدار DateTime بین ساعت 12:00 نیمه شب، 1 ژانویه 0001 و 11:59:59 بعد از ظهر، 31 دسامبر 9999 پس از میلاد مسیح است. در این مقاله نحوه ایجاد DateTime در سی شارپ را توضیح خواهیم داد.
پیش از ادامه ی مقاله ، در صورت نیاز به خرید سرور مجازی ایران به سایت ایرانیکاسرور مراجعه کرده و از پلن های فوق العاده با قیمت های عالی دیدن کنید.
ما راه های مختلفی برای ایجاد ابجکت با DateTime داریم. یک ابجکت DateTime دارای زمان، فرهنگ، تاریخ، محلی سازی، میلی ثانیه است.
در اینجا ما کدی داریم که کاربرد سازنده های مختلف ساختار DateTime برای ایجاد ابجکت ها در DateTime را نشان می دهد:
// From DateTime create the Date and Time DateTime DOB= new DateTime(19, 56, 8, 12, 8, 12, 23); // From String creation of DateTime string DateString= "8/12/1956 7:10:24 AM"; DateTime dateFromString = DateTime.Parse(DateString, System.Globalization.CultureInfo.InvariantCulture); Console.WriteLine(dateFromString.ToString()); // Empty DateTime DateTime EmpDateTime= new DateTime(); // Just date DateTime OnlyDate= new DateTime(2002, 10, 18); // DateTime from Ticks DateTime OnlyTime= new DateTime(10000000); // Localization with DateTime DateTime DateTimewithKind = new DateTime(1976, 7, 10, 7, 10, 24, DateTimeKind.Local); // DateTime with date, time and milliseconds DateTime WithMilliseconds= new DateTime(2010, 12, 15, 5, 30, 45, 100);
ویژگی های DateTime در سی شارپ
DateTime دارای ویژگی Date(تاریخ) و Time(زمان) است. DateTime دارای ویژگی های دیگری نیز می باشد، مانند ساعت، دقیقه، ثانیه، میلی ثانیه، سال، ماه و روز.
ویژگی های دیگر DateTime عبارتند از:
- با کمک ویژگی DayOfWeek می توانیم نام هر روز را از هفته دریافت کنیم.
- برای دریافت روز سال، از ویژگی DayOfYear استفاده می کنیم.
- برای دریافت زمان روز در یک DateTime، از ویژگی TimeOfDay استفاده می کنیم.
- ویژگی Today ابجکت از DateTime را که دارای مقدار حاوی زمان امروز است را برمی گرداند. ارزش زمان 12:00:00 است.
- ویژگی Now ابجکت DateTime را که دارای تاریخ و زمان فعلی است برمی گرداند.
- ویژگی Utc میتواند DateTime زمان جهانی هماهنگ (UTC) را به ما ارائه دهد.
- One Tick نشان دهنده صد نانوثانیه در DateTime است. ویژگی Ticks از DateTime تعداد تیکهای یک DateTime را برمیگرداند.
- ویژگی Kind مقداری را برمیگرداند که در آن نمایش زمان توسط نمونه انجام میشود، که بر اساس زمان محلی، زمان هماهنگ جهانی (UTC) است. همچنین مقدار پیش فرض نامشخص را نشان می دهد.
در اینجا ما مثالی از استفاده از ویژگی های DateTime در کد سی شارپ را در اختیار شما قرار میدهیم:
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateTimeProperty = new DateTime(1974, 7, 10, 7, 10, 24); Console.WriteLine("Day:{0}", DateTimeProperty.Day); Console.WriteLine("Month:{0}", DateTimeProperty.Month); Console.WriteLine("Year:{0}", DateTimeProperty.Year); Console.WriteLine("Hour:{0}", DateTimeProperty.Hour); Console.WriteLine("Minute:{0}", DateTimeProperty.Minute); Console.WriteLine("Second:{0}", DateTimeProperty.Second); Console.WriteLine("Millisecond:{0}", DateTimeProperty.Millisecond); Console.WriteLine("Day of Week:{0}", DateTimeProperty.DayOfWeek); Console.WriteLine("Day of Year: {0}", DateTimeProperty.DayOfYear); Console.WriteLine("Time of Day:{0}", DateTimeProperty.TimeOfDay); Console.WriteLine("Tick:{0}", DateTimeProperty.Ticks); Console.WriteLine("Kind:{0}", DateTimeProperty.Kind); } } }
خروجی:
جمع و تفریق DateTime در سی شارپ
ساختار DateTime روش هایی را برای اضافه و کم کردن تاریخ و زمان به و از ابجکت DateTime ارائه می دهد. می توانیم تاریخ را در ساختار DateTime به ابجکت DateTime اضافه و کم کنیم. برای جمع و تفریق در DateTime، از ساختار TimeSpan استفاده می کنیم:
برای جمع و تفریق می توانیم از متد Add and Subtract از شی DateTime استفاده کنیم. ابتدا TimeSpan را با مقادیر تاریخ و زمان ایجاد می کنیم که در آن از متدهای Add and Subtract استفاده می کنیم.
در اینجا ما یک کد ایجاد می کنیم که 3 را اضافه می کند و 30 روز از امروز را کم می کند و روز را روی کنسول نمایش می دهد:
using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime Day = DateTime.Now; TimeSpan Month = new System.TimeSpan(30, 0, 0, 0); DateTime aDayAfterAMonth = Day.Add(Month); DateTime aDayBeforeAMonth = Day.Subtract(Month); Console.WriteLine("{0:dddd}", aDayAfterAMonth); Console.WriteLine("{0:dddd}", aDayBeforeAMonth); } } }
ساختار DateTime شامل روش هایی برای اضافه کردن سال، روز، ساعت، دقیقه، ثانیه است. برای افزودن اجزای مختلف به ابجکت DateTime از روش Add استفاده می شود:
// To Add the Years and Days day.AddYears(2); day.AddDays(12); // Add Hours, Minutes, Seconds, Milliseconds, and Ticks Day.AddHours(4.25); day.AddMinutes(15); day.AddSeconds(45); day.AddMilliseconds(200); day.AddTicks(5000);
DateTime شامل روش تفریق نیست. برای تفریق جزء DateTime، فقط از روش تفریق استفاده می کنیم. به عنوان مثال: اگر لازم باشد 12 روز را از DateTime کم کنیم، می توانیم ابجکت دیگری از ابجکت DateTime یا TimeSpan با 12 روز ایجاد کنیم. حالا این ابجکت را از DateTime کم می کنیم. یا به عنوان شیوه ی جایگزین، میتوانیم از عملگر منهای برای تفریق DateTime یا TimeSpan از DateTime استفاده کنیم.
اکنون یک کد ایجاد می کنیم که از طریق آن می توانیم ابجکت DateTime را ایجاد کنیم و DateTime و Object of TimeSpan دیگری را کم کنیم. در کد، ما فقط تفریق ساعت ها، روزها یا سایر اجزاء را از DateTime نشان خواهیم داد:
DateTime DOB = new DateTime(2000, 10, 20, 12, 15, 45); DateTime SubtractDate = new DateTime(2000, 2, 6, 13, 5, 15); // Use the TimeSpan with 10 days, 2 hrs, 30 mins, 45 seconds, and 100 milliseconds TimeSpan ts = new TimeSpan(10, 2, 30, 45, 100); // Subtract the DateTime TimeSpan Different = DOB.Subtract(SubtractDate); Console.WriteLine(Different.ToString()); // Subtract the TimeSpan DateTime Different2 = DOB.Subtract(ts); Console.WriteLine(Different2.ToString()); // Subtract 10 Days by creating the object SubtractedDays DateTime SubtractedDays = new DateTime(DOB.Year, DOB.Month, DOB.Day - 10); Console.WriteLine(SubtractedDays.ToString()); // Subtract hours, minutes, and seconds with creating the object HoursMinutesSeconds DateTime HoursMinutesSeconds = new DateTime(DOB.Year, DOB.Month, DOB.Day, DOB.Hour - 1, DOB.Minute - 15, DOB.Second - 15); Console.WriteLine(HoursMinutesSeconds.ToString());
جستجوی روزهای ماه
برای یافتن تعداد روزهای ماه از روش استاتیک DaysInMonth استفاده کردیم. این روش جستجو [] پارامتر را به اعداد از 1 تا 12 می گیرد.
در این بخش کدی می نویسیم که از طریق آن تعداد روزهای یک ماه خاص را می یابیم.
برای مثال ، در اینجا تعداد روزهای فوریه 2020 را خواهیم فهمید. خروجی 28 روز خواهد بود:
int NumberOfDays = DateTime.DaysInMonth(2004, 2); Console.WriteLine(NumberOfDays);
با همین تکنیک می توانیم تعداد کل روزهای یک سال را دریابیم. برای این کار از روش DaysInYear استفاده می کنیم:
private int DaysInYear(int year) { int DaysIN= 0; for (int j = 1; j <= 12; j++) { DaysIN += DateTime.DaysInMonth(year, j); } return DaysIN; }
مقایسه دو تاریخ در سی شارپ
روش استاتیک مقایسه کننده برای مقایسه ابجکت دو تاریخ زمان استفاده می شود. اگر ابجکت ها برای هر دو DateTime یکسان باشد، نتیجه 0 خواهد بود. اگر اولین DateTime زودتر باشد، نتیجه 0 خواهد بود در غیر این صورت اولین DateTime دیرتر خواهد بود:
اکنون مقایسه دو ابجکت datetime در سی شارپ را نشان خواهیم داد:
using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateOfFirst = new DateTime(2002, 10, 22); DateTime DateOfSecond = new DateTime(2009, 8, 11); int result1 = DateTime.Compare(DateOfFirst, DateOfSecond); if (result1 < 0) Console.WriteLine("Date of First is earlier"); else if (result1 == 0) Console.WriteLine("Both dates are same"); else Console.WriteLine("Date of First is later"); } } }
خروجی:
روش CompareTo
برای مقایسه این دو تاریخ از روش CompareTo استفاده می شود. ما DateTime یا ابجکت را در این متد اختصاص می دهیم.
برای مقایسه دو ابجکت DateTime از متد CompareTo استفاده کردیم. در بخش زیر یک کد C# برای این کاز داریم:
using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateOfFirst = new DateTime(2001, 10, 20); DateTime DateOfSecond = new DateTime(2009, 8, 11); int ResultOfComparison = DateOfFirst.CompareTo(DateOfSecond); if (ResultOfComparison < 0) Console.WriteLine("Date Of First is Earlier"); else if (ResultOfComparison == 0) Console.WriteLine("Date of Both are same"); else Console.WriteLine("Date of First is Later"); } } }
خروجی:
دریافت سال کبیسه و ساعات روز
از طریق کد C#، سال کبیسه و ساعت را دریافت خواهیم کرد: using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DateOfTime = new DateTime(2020, 02, 22); Console.WriteLine(DateOfTime.IsDaylightSavingTime()); Console.WriteLine(DateTime.IsLeapYear(DateOfTime.Year)); } } }
خروجی:
تبدیل رشته به DateTime
برای تبدیل رشته به ابجکت DateTime از متد Parse استفاده کردیم. در متد Parse، رشته عبوری باید فرمت صحیح DateTime را داشته باشد. برای تبدیل DateTime به String از متد ToString() استفاده می شود:
using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { string DT = "2020-02-04T20:12:45-5:00"; DateTime NEWDt = DateTime.Parse(DT); Console.WriteLine(NEWDt.ToString()); } } }
خروجی:
تبدیل DateTime در سی شارپ
ساختار DateTime پر از تبدیل خود توضیحی است که DateTime را به نوع خاصی تبدیل می کند. متدها ToFileTime، ToLocalTime، ToLongDateString، ToBinary، ToLongTimeString، ToOADate، ToShortDateString، ToShortTimeString، ToString و ToUniversalTime هستند.
در اینجا ما یک مثال از سی شارپ را برای تبدیل DateTime به نوع خاص می آوریم:
using System; using System. Collections; using System.Collections.Generic; using System. Linq; using System. Text; using System.Threading.Tasks; namespace ConsoleApp8 { class Program { static void Main(string[] args) { DateTime DOB = new DateTime(2020, 01, 22); Console.WriteLine("ToString: " + DOB.ToString()); Console.WriteLine("ToBinary: " + DOB.ToBinary()); Console.WriteLine("ToFileTime: " + DOB.ToFileTime()); Console.WriteLine("ToLocalTime: " + DOB.ToLocalTime()); Console.WriteLine("ToLongDateString: " + DOB.ToLongDateString()); Console.WriteLine("ToLongTimeString: " + DOB.ToLongTimeString()); Console.WriteLine("ToOADate: " + DOB.ToOADate()); Console.WriteLine("ToShortDateString: " + DOB.ToShortDateString()); Console.WriteLine("ToShortTimeString: " + DOB.ToShortTimeString()); Console.WriteLine("ToUniversalTime: " + DOB.ToUniversalTime()); } } }
خروجی:
و کار ما تمومه!
در این مقاله به نحوه ی کار با ابجکت DateTime در سی شارپ، تبدیل DateTime در سی شارپ، دریافت سال کبیسه و ساعات روز، و مقایسه دو تاریخ پرداختیم. شما می توانید مشکلات و نظرات خود را در کامنت ها با ما به اشتراک بگذارید.