4 روش برای مقایسه دو تاریخ در جاوا

فهرست مطالب:

4 روش برای مقایسه دو تاریخ در جاوا
4 روش برای مقایسه دو تاریخ در جاوا

تصویری: 4 روش برای مقایسه دو تاریخ در جاوا

تصویری: 4 روش برای مقایسه دو تاریخ در جاوا
تصویری: آموزش برنامه نویسی جاوا از مقدماتی تا پیشرفته ( صفر تا صد java) 2024, دسامبر
Anonim

روشهای زیادی برای مقایسه دو تاریخ در زبان برنامه نویسی جاوا وجود دارد. در رایانه ها ، تاریخ با یک عدد (نوع داده Long) در واحد زمان نشان داده می شود - یعنی تعداد میلی ثانیه که از 1 ژانویه 1970 سپری شده است. در جاوا ، تاریخ یک شی است ، به این معنی که دارای چندین روش برای مقایسه هر روشی که برای مقایسه دو تاریخ استفاده می شود ، اساساً مقایسه واحدهای زمانی دو تاریخ است.

گام

روش 1 از 4: استفاده از compareTo

4301351 1
4301351 1

مرحله 1. از compareTo استفاده کنید

شیء Date Compareble را پیاده سازی می کند ، بنابراین می توان 2 تاریخ را مستقیماً با متد compareTo با یکدیگر مقایسه کرد. اگر هر دو تاریخ در واحدهای زمانی یکسان باشند ، روش صفر برمی گرداند. اگر تاریخ دوم کمتر از روز اول باشد ، مقدار کمتر از صفر بازگردانده می شود. اگر تاریخ دوم بزرگتر از اولین باشد ، متد مقدار بزرگتر از صفر را برمی گرداند. اگر هر دو تاریخ یکسان باشند ، متد مقدار null را برمی گرداند.

4301351 2
4301351 2

مرحله 2. چندین شیء Date ایجاد کنید

شما باید چندین شیء تاریخ را قبل از مقایسه ایجاد کنید. یکی از ساده ترین راه ها برای این کار استفاده از کلاس SimpleDateFormat است. این کلاس تبدیل مقدار تاریخ ورودی را به شیء تاریخ آسان می کند.

    SimpleDateFormat sdf = جدید SimpleDateFormat ("yyyy-MM-dd"). برای اعلام مقدار در "تاریخ شی" جدید ، هنگام ایجاد تاریخ از همان قالب تاریخ استفاده کنید. تاریخ تاریخ 1 = sdf.parse ("1995-02-23")؛ // date1 23 فوریه 1995 تاریخ تاریخ 2 = sdf.parse ("2001-10-31") است ؛ // date2 31 اکتبر 2001 است تاریخ date3 = sdf.parse ("1995-02-23") ؛ // تاریخ 3 23 فوریه 1995 است

4301351 3
4301351 3

مرحله 3. اشیاء Date را مقایسه کنید

کد زیر نمونه هایی را برای هر مورد به شما نشان می دهد - کمتر از ، مساوی و بزرگتر از.

    date1.compareTo (date2)؛ // date1 <date2 ، مقدار کمتر از 0 date2.compareTo (date1) را برمی گرداند ؛ // date2> date1 ، مقدار بیشتر از 0 date1.compareTo (date3) را برمی گرداند ؛ // date1 = date3 ، بنابراین 0 را در کنسول خروجی می دهد

روش 2 از 4: استفاده از مساوی ، بعد و قبل

4301351 4
4301351 4

مرحله 1. پس و قبل از مساوی استفاده کنید

خرما را می توان با استفاده از روشهای برابر ، بعد و قبل مقایسه کرد. اگر دو تاریخ دارای ارزش یکسانی در زمان باشند ، روش equals true برمی گردد. در مثال زیر از شیء Date ایجاد شده در متد compareTo استفاده خواهد شد.

4301351 5
4301351 5

مرحله 2. با روش قبل مقایسه کنید

کد زیر یک مورد نمونه را نشان می دهد که true و false را برمی گرداند. اگر date1 یک تاریخ قبل از date2 باشد ، متد before true برمی گردد. در غیر این صورت ، متد قبل false باز می گردد.

    System.out.print (date1.before (date2))؛ // نمایش مقدار "true" System.out.print (date2.before (date2))؛ // مقدار "" false "را برگرداند

4301351 6
4301351 6

مرحله 3. با استفاده از روش after مقایسه کنید

کد زیر یک مورد نمونه را نشان می دهد که true و false را برمی گرداند. اگر date2 تاریخ بعد از date1 باشد ، متد after درست برمی گردد. در غیر این صورت ، متد after به صورت false برمی گردد.

    System.out.print (date2.after (date1))؛ // نمایش مقدار "true" System.out.print (date1.after (date2))؛ // نمایش مقدار "false"

4301351 7
4301351 7

مرحله 4. با روش equals مقایسه کنید

کد زیر یک مورد نمونه را نشان می دهد که true و false را برمی گرداند. اگر هر دو تاریخ مساوی باشند ، روش equals true برمی گردد. در غیر این صورت ، متد equals false برمی گرداند.

    System.out.print (date1.equals (date3))؛ // نمایش مقدار "true" System.out.print (date1.equals (date2))؛ // نمایش مقدار "false"

روش 3 از 4: استفاده از تقویم کلاس

4301351 8
4301351 8

مرحله 1. از تقویم کلاس استفاده کنید

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

4301351 9
4301351 9

مرحله 2. یک نمونه از تقویم ایجاد کنید

برای استفاده از روش ها در تقویم کلاس ، باید چندین نمونه تقویم ایجاد کنید. خوشبختانه ، می توانید از مقادیر نمونه تاریخ ایجاد شده استفاده کنید.

    تقویم cal1 = Calendar.getInstance ()؛ // اعلام cal1 Calendar cal2 = Calendar.getInstance ()؛ // اعلام cal2 تقویم cal3 = Calendar.getInstance ()؛ // cal3 cal1.setTime (date1) را اعلام کنید ؛ // تاریخ را در cal1 cal2.setTime (date2) قرار دهید ؛ cal3.setTime (date3)؛

4301351 10
4301351 10

مرحله 3. cal1 و cal2 را با استفاده از روش قبل مقایسه کنید

کد زیر مقدار tr را نشان می دهد

    System.out.print (cal1.before (cal2))؛ // مقدار "true" را برمی گرداند

4301351 11
4301351 11

مرحله 4. cal1 و cal2 را با استفاده از روش after مقایسه کنید

کد زیر نادرست باز می گردد زیرا cal1 تاریخ قبل از cal2 است.

    System.out.print (cal1.after (cal2)) ؛ // مقدار "" false "را برگرداند

4301351 12
4301351 12

مرحله 5. cal1 و cal2 را با استفاده از روش برابر مقایسه کنید

کد زیر یک مورد نمونه را نشان می دهد که true و false را برمی گرداند. وضعیت بستگی به مقایسه تقویم دارد. کد زیر مقدار "true" و سپس "false" را در خط بعدی باز می گرداند.

    System.out.println (cal1.equals (cal3)) ؛ // مقدار "" true "را برگرداند: cal1 == cal3 System.out.print (cal1.equals (cal2)) ؛ // مقدار "" false "را برگرداند: cal1! = cal2

روش 4 از 4: استفاده از getTime

4301351 13
4301351 13

مرحله 1. از getTime استفاده کنید

همچنین می توانید مقادیر واحد زمان دو تاریخ را مستقیماً مقایسه کنید ، اگرچه خواندن دو روش قبلی آسان تر و ترجیح داده می شود. به این ترتیب شما 2 نوع داده اولیه را مقایسه می کنید ، بنابراین می توانید از عملوندهای "" و "==" استفاده کنید.

4301351 14
4301351 14

مرحله 2. یک شی زمان در قالب شماره طولانی ایجاد کنید

قبل از اینکه بتوانید تاریخها را مقایسه کنید ، باید از شیء تاریخ ایجاد شده یک عدد صحیح طولانی ایجاد کنید. خوشبختانه ، متد () getTime این کار را برای شما انجام می دهد.

    long time1 = getTime (date1) ؛ // اعلام زمان اولیه 1 از تاریخ 1 زمان طولانی 2 = getTime (تاریخ 2) ؛ // مقدار time2 اولیه date2 را اعلام کنید

4301351 15
4301351 15

مرحله 3. مقایسه ای کمتر از مقایسه انجام دهید

از عملوند کمتر از (<) برای مقایسه این دو مقدار صحیح استفاده کنید. از آنجا که time1 کمتر از time2 است ، اولین پیام ظاهر می شود. دستور else برای تکمیل نحو گنجانده شده است.

    if (time1 <time2) {System.out.println ("date1 تاریخ قبل از date2 است") ؛ // نشان داده می شود زیرا time1 <time2} else {System.out.println ("date1 تاریخ قبل از date2 نیست") ؛ }

4301351 16
4301351 16

مرحله 4. یک مقایسه بزرگتر انجام دهید

از عملوند بزرگتر از (>) برای مقایسه این دو مقدار صحیح استفاده کنید. از آنجا که time1 بزرگتر از time2 است ، اولین پیام ظاهر می شود. دستور else برای تکمیل نحو گنجانده شده است.

    if (time2> time1) {System.out.println ("date2 تاریخ بعد از تاریخ 1 است") ؛ // نشان داده می شود زیرا time2> time1} else {System.out.println ("date2 تاریخ بعد از تاریخ 1 نیست") ؛ }

4301351 17
4301351 17

مرحله 5. مقایسه ای برابر انجام دهید

برای مقایسه برابری مقادیر (==) از تابع عملوند برای مقایسه این دو عدد صحیح استفاده کنید. از آنجا که time1 برابر time3 است ، اولین پیام ظاهر می شود. اگر جریان برنامه به دستور else وارد شود ، به این معنی است که دو زمان یکسان نیستند.

    if (time1 == time2) {System.out.println ("هر دو تاریخ یکسان هستند")؛ } else {System.out.println ("1 با 2 مشابه نیست")؛ // نشان داده می شود زیرا time1! = time2}

توصیه شده: