مانده تا پایان تخفیف ۳۰ درصدی آموزش های ویدئویی سایت (کلیک کنید)

کلاس DateTime

کلاس DateTime کلاسی از دات نت است که به شما اجازه استفاده، ذخیره، و دستکاری ساعت و تاریخ را می دهد. این کلاس دارای متدهایی برای دستکاری تاریخ مانند اضافه و کم کردن روزها، ماه ها، یا سال ها و مطابق کردن آنها با تاریخ جاری را می دهند. همچنین دارای متدهایی است که تاریخ را به اشکال متفاوتی نشان می دهند. کد زیر نحوه استفاده از کلاس DateTime را نشان می دهد.

using System;

public class Program
{
    public static void Main()
    {
        DateTime newyear = new DateTime(2010, 12, 25);

        Console.WriteLine(newyear.ToString());
    }
}
12/25/2010 12:00:00 AM

از یک سازنده که سال و ماه و روز را قبول می کند برای مقدار دهی به شیء DateTime و همچنین از متد ToString() کلاس DateTime برای نمایش تاریخ و ساعت استفاده می کنیم. متد ToString() در حالت پیشفرض شی DateTime شما را به فرمت زیر نمایش می دهد : MM/DD/YYYY HH:MM:SS AM/PM.
با متدهای مختلفی که فرمت خروجی را با فرمت های دیگری نمایش می دهند در آینده آشنا می شوید. کلاس DateTime دارای چندین سازنده است که می توانید از آنها استفاده کنید. جدول زیر لیست سازنده های متداول این کلاس را نشان می دهد.

سازنده ها
DateTime()
DateTime(int year, int month, int day)
DateTime(int year, int month, int day, int hour, int minute, int second)
DateTime(int year, int month, int day, int hour,int minute, int second, int millisecond)

سازنده پیشفرض، تاریخ را به صورت 01/01/0001 12:00:00 AM نشان می دهد. برای به دست آوردن تاریخ و ساعت جاری، می توان از خاصیت استاتیک Now کلاس DateTime استفاده کرد. برای به دست آوردن فقط تاریخ جاری می توان از خاصیت Today استفاده کرد.

DateTime now = DateTime.Now;
DateTime today = DateTime.Today;

برای نمایش شیء DateTime به صورت های دیگر می توان از چندین متد که در زیر نشان داده شده اند استفاده کرد :

متد نمونه خروجی
ToLongDateString() Saturday, Octoboer 2, 2010
ToLongTimeString() 4:14:18 PM
ToShortDateString() 10/2/2010
ToShortTimeString() 4:14 PM

حتی می توان از متد String.Format() برای سفارشی کردن خروجی ها استفاده کرد.

Specifier نوع مثال خروجی
dd Day {0:dd} 10
ddd Day name {0:ddd} Tue
dddd Full Day Name {0:ddd} Tuesday
f, ff, … Second Fractions {0:fff} 932
gg, … Era {0:gg} A.D.
hh 2 digit hour {0:hh} 10
HH 2 digit hour,
24hr format
{0:HH} 22
mm Minute 00-59 {0:mm} 38
MM Month 01-12 {0:MM} 12
MMM Month abbreviation {0:MMM} Dec
MMMM Full month name {0:MMMM} December
ss Seconds 00-59 {0:ss} 46
tt AM or PM {0:tt} PM
yy Year, 2 digits {0:yy} 02
yyyy Year {0:yyyy} 2002
zz Timezone offset,
2 digits
{0:zz} -05
zzz Full timezone
offset
{0:zzz} -05:00
: Seperator {0:hh:mm:ss} 10:43:20
/ Seperator {0:dd/MM/yyyy} 10/2/2010

به عنوان مثال :

Console.WriteLine("The current date is {0:dd/MM/yyy}", DateTime.Now);
The current date is 10/2/2010

 

متدهای DateTime

کلاس DateTime متدهای زیادی برای کار کردن با ساعت و تاریخ در اختیار کاربر قرار می دهد. برخی از این متدها در زیر نشان داده شده است :

متد توضیح
AddDays() به وسیله این متدها می توان مقادیری را به شیء DateTime اضافه و یا مقادیری را از آن کم کرد.
AddHours()
AddMilliseconds()
AddMinutes()
AddMonths()
AddSeconds()
AddTicks()
AddYears()
Equals() نشان می دهد که آیا شیء DateTime با آرگومان DateTime ارسال شده به متد برابر است یا نه
ToUniversalTime() مقدار نمونه DateTime را به ساعت جهانی تبدیل می کند.
DaysInMonth() Static. تعداد روزهای یک ماه را بر می کرداند.
IsLeapYear() Static. نشان می دهد که آیا سال مشخص شده یک سال کبیسه است یا نه

در جدول زیر لیست برخی از خواص (proerty) کلاس DateTime نشان داده شده است :

خاصیت توضیح
Date تاریخ را بر می گرداند.
Day نشان می دهد که چندمین روز ماه جاری است.
DayOfWeek نشان می دهد که چه روزی از هفته است (مثلا شنبه یا …) .
DayOfYear نشان می دهد که چندمین روز سال جاری است (مثلا 125 مین روز).
Hour ساعت را نشان می دهد.
Millisecond میلی ثانیه را نشان می دهد.
Minute دقیقه را نشان می دهد.
Month نشان می دهد که چندمین ماه سال جاری است
Second ثانیه را نشان می دهد.
TimeOfDay نشان می دهد که چه ساعتی از روز است.
Year برای نشان دادن سال به کار می رود.
Now Static. تاریخ و ساعت جاری را نشان می دهد.
Today Static. فقط تاریخ جاری را نشان می دهد.
UtcNow Static. تارخ و ساعت جاری محلی را نشان می دهد.

در مثال زیر در مورد نحوه استفاده از متدها و خواص کلاس DateTime آمده است :

using System;

public class Program
{
    public static void Main()
    {
        DateTime myDate = DateTime.Now;

        Console.WriteLine("Year: " + myDate.Year);
        Console.WriteLine("Month: " + myDate.Month);
        Console.WriteLine("Day: " + myDate.Day);
        Console.WriteLine("Today is {0}.", myDate.DayOfWeek.ToString());

        //Assign newDate with the current date added by 3 days
        DateTime newDate = myDate.AddDays(3);
        Console.WriteLine("The date 3 days from now is {0}.", 
                  newDate.ToShortDateString());

        //Assign newdate with the current date subtracted by 3 days
        newDate = myDate.AddDays(-3);
        Console.WriteLine("The date 3 days ago is {0}.", newDate.ToShortDateString()); 
    }
}
Year: 2010
Month: 10
Day: 3
Today is Sunday.
The date 3 days from now is 10/6/2010.
The date 3 days ago is 9/30/2010.

همانطور که مشاهده می کنید از خواص کلاس DateTime برای نمایش جداگانه اجزاء تاریخ استفاده کرده ایم. در مثال بالا نشان داده شده است که چطور به وسیله کم یا زیاد کردن روزها می توان مقدار شیء DateTime را اصلاح کرد. مثلا برای کم کردن 3 روز از شیء، از یک عدد منفی استفاده کرده ایم. همچنین متد ToShortDateString() برای نمایش شکل کوتاه تاریخ به کار می رود.

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.