نماد سایت امپراطوری من

کار با DateTime در سی شارپ

سی شارپ

گاهی اوقات ممکن است  نیاز داشته باشیم زمان ها را با هم مقایسه کرده، اختلاف زمانی بین آنها را بدست بیاوریم یا اینکه تاریخ را از ساعت جدا کرده و نمایش دهیم و یا زمان را بر اساس الگویی خاص نمایش دهیم. برای بدست آوردن این توانایی ها نیاز داریم تا با کلاس DateTime که مربوط به زمان و تاریخ است و همچنین کلاس TimeSpan که برای محاسبه اختلاف زمانی یا ایجاد برچسب زمانی مورد استفاده قرار می گیرند، بیشتر آشنا شویم. این کلاس ها در کتابخانه اصلی سی شارپ یعنی System وجود دارند و برای دسترسی به آنها نیاز به فراخوانی کتابخانه ای نداریم.

[divider]

نمایش تاریخ و زمان با فرمت های خاص

در زبان سی شارپ فرمت های از پیش تعیین شده ای برای نمایش زمان و تاریخ وجود دارد که در تصویر فوق لیست آنها را مشاهده می کنید. علاوه بر این فرمت ها، می توانید بصورت سفارشی نیز اقدام به ساخت فرمت دلخواه خود کنید. به نمونه کد زیر دقت کنید:


string dateTime = DateTime.Now.toString("D");

همانطور که می شود حدس زد حرف “D” بیانگر Date به معنای تاریخ خواهد بود و با اجرای این کد، تاریخ کنونی سیستم در رشته dateTime قرار می گیرد. حال اگر این رشته را در یک TextBox قرار دهیم، خروجی مانند تصویر زیر خواهد شد:

[divider]

مقایسه زمان ها

برای مقایسه زمان ها از تابع Compare که در کلاس DateTime موجود است، استفاده می کنیم. به نمونه کد زیر دقت کنید:

DateTime first = DateTime.Parse("9/4/2014 1:35:55 AM");
DateTime second = DateTime.Parse("9/4/2014 1:35:34 AM");
if (DateTime.Compare(first, second)>0)
MessageBox.Show("زمان اول بزرگتر است");
else if(DateTime.Compare(first, second)<0)
MessageBox.Show("زمان دوم بزرگتر است");
else
MessageBox.Show("زمان ها با هم برابر هستند");

خروجی کد بالا را می توانید در تصویر زیر مشاهده کنید:

[divider]

بدست آوردن اختلاف زمانی

همانطور که در مقدمه این آموزش نیز بیان شد، برای بدست آوردن اختلاف زمانی میان دو DateTime باید از کلاس TimeSpan کمک بگیریم. کافیست حاصل تفریق دو زمان مورد نظر را در شی ای از جنس کلاس TimeSpan قرار دهیم تا بتوانیم اختلاف میان آن دو را بدست آوریم. به نمونه کد زیر دقت کنید:

DateTime first = DateTime.Parse("9/4/2014");
DateTime second = DateTime.Parse("10/4/2014");
TimeSpan ts = second - first;

string msg = "اختلاف زمان بر حسب روز: " + ts.TotalDays + "\n";
msg += "اختلاف زمان بر حسب ساعت: " + ts.TotalHours + "\n";
msg += "اختلاف زمان بر حسب دقیقه: " + ts.TotalMinutes + "\n";
msg += "اختلاف زمان بر حسب ثانیه: " + ts.Seconds + "\n";

MessageBox.Show(msg);

خروجی کد بالا پیغامی را نمایش خواهد داد که اختلاف میان دو زمان first و second را بر حسب روز، ساعت، دقیقه و ثانیه بیان می کند.

موفق و پیروز باشید!
همچنین می توانید نمونه پروژه مربوط به این آموزش را دانلود نمایید:
پسورد فایل: www.myempire.ir

[button color=”blue” size=”medium” link=”https://myempire.ir/wp-content/uploads/DateTimeExamplewww.myempire.ir_.zip” target=”blank” ]دریافت نمونه پروژه[/button]

خروج از نسخه موبایل