جدول محتوایی

آموزش 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"); 

} 
} 
}

 

خروجی:

DateTime در سی شارپ

 

روش 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"); 

} 
} 
}

 

خروجی:

DateTime در سی شارپ

 

 

 

دریافت سال کبیسه و ساعات روز

از طریق کد 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

برای تبدیل رشته به ابجکت 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 پر از تبدیل خود توضیحی است که 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 در سی شارپ، تبدیل DateTime در سی شارپ، دریافت سال کبیسه و ساعات روز، و مقایسه دو تاریخ پرداختیم. شما می توانید مشکلات و نظرات خود را در کامنت ها با ما به اشتراک بگذارید.

 

25رای - امتیاز 5 ممنون از امتیازی که دادید..!