ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

مقایسه بخش های مختلف تاریخ و زمان

بسم الله الرحمن الرحیم

بسیاری مواقع است که شما می خواهید دو تاریخ را با یکدیگر مقایسه کنید اما برای مقایسه این دو تاریخ نمی خواهید همه بخش ها را بایکدیگر مقایسه کنید، مثلا فرض کنید میخواهید فقط ماه و سال را مقایسه کنید و نمی خواهید سایر بخش ها را مقایسه شوند.

برای این روش مثلا اگر قرار باشد فقط میلی ثانیه در مقایسه شما تاثیری نداشته باشد می توانید از کد زیر استفاده کنید

public static DateTime TrimMilliseconds(this DateTime dt)
{
    return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, 0);
}

DateTime.Compare(DateTime1.TrimMilliseconds(),DateTime2.TrimMilliseconds);

 یا می همان بخش از تاریخ و زمان را که نمی خواهید مقایسه شود صفر نمایید مثلا همان ثانیه ها

dt = dt.AddMilliseconds(-dt.Millisecond);

اما با این تابع می توانید مقایسه های متفاوتی داشته باشید:

 public static DateTime TruncateTo(this DateTime dt, DateTruncate TruncateTo)
    {
        if (TruncateTo == DateTruncate.Year)
همه
        else if (TruncateTo == DateTruncate.Month)
            return new DateTime(dt.Year, dt.Month, 0);
        else if (TruncateTo == DateTruncate.Day)
            return new DateTime(dt.Year, dt.Month, dt.Day);
        else if (TruncateTo == DateTruncate.Hour)
            return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0);
        else if (TruncateTo == DateTruncate.Minute)
            return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, 0);
        else
            return new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second);

    }
    public enum DateTruncate
    {
        Year,
        Month,
        Day,
        Hour,
        Minute,
        Second
    }

برای استفاده از این متد مثلا اگر بخواهید فقط تاریخ و ساعت مقایسه شود یعنی دقیقه، ثانیه و میلی ثانیه در نظر گرفته نشود باید به صورت زیر عمل کنید

DateTime dtSecs = DateTime.Now.TruncateTo(Extensions.DateTruncate.Hour);//فقط سال، ماه، روز و ساعت ذخیره می شود دقیقه و ثانیه هر دو صفر است پس عملا مقایسه بر روی تاریخ و ساعت صورت می گیرید
DateTime dtHrs  = DateTime.Now.TruncateTo(Extensions.DateTruncate.Hour);
DateTime.Compare(dtSecs,dtHrs);

نظرات (۰)

هيچ نظري هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی
up
ما را در گوگل محبوب کنید