سی شارپ

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

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

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

00

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


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

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

0

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

برای مقایسه زمان ها از تابع 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("زمان ها با هم برابر هستند");

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

2

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

همانطور که در مقدمه این آموزش نیز بیان شد، برای بدست آوردن اختلاف زمانی میان دو 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 را بر حسب روز، ساعت، دقیقه و ثانیه بیان می کند.

4

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

دریافت نمونه پروژه

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

بررسی کلی

امتیاز کاربر: 4.75 ( 4 رای)
0

۶ دیدگاه

  1. ای بابا مطلب بذارید دیگه!

    • علی جان،
      چند هفته ای میشه که مطلب جدید تو سایت نذاشتیم. بابت این تاخیر طولانی معذرت خواهی میکنم.
      دلیلش اینه که داریم یه نرم افزار اندرویدی آماده میکنیم و قراره بزودی این برنامه منتشر بشه.
      بخاط همین بیشتر وقت و انرژیمون رو برای تموم کردن این برنامه داریم صرف میکنیم.
      ایشالا تا چند روز دیگه مطالب جدید تو سایت قرار داده میشه.

  2. سلام خسته نباشید
    خیلی ممنون بابت این آموزش
    خدا قوت 😉

  3. salam baradar
    age bekhay etelate zamano az datagridview begiri bayad chi kar konim

  4. ممنون بابت مطلب بسیار مفیدتون

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme