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

فهرست مطالب:

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

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

تصویری: 4 روش برای مقایسه دو تاریخ در جاوا
تصویری: Inkscape: نحوه تغییر تنظیمات پیش فرض 2024, آوریل
Anonim

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

مراحل

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

4301351 1
4301351 1

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

Date Compareble را پیاده سازی می کند و بنابراین می توان دو تاریخ را مستقیماً با روش compareTo مقایسه کرد. اگر تاریخها برای یک زمان در یک زمان باشند ، روش صفر برمی گرداند. اگر تاریخ مورد مقایسه قبل از آرگومان تاریخ باشد ، مقدار کمتر از صفر بازگردانده می شود. اگر تاریخ مورد مقایسه بعد از آرگومان تاریخ باشد ، مقدار بزرگتر از صفر بازگردانده می شود. اگر تاریخها برابر باشند ، مقدار 0 بازگردانده می شود.

4301351 2
4301351 2

مرحله 2. اشیاء تاریخ را ایجاد کنید

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

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

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

روش 2 از 4: استفاده از Equals ، After و Before

4301351 4
4301351 4

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

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

4301351 5
4301351 5

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

کد زیر یک مورد درست و غلط را نشان می دهد. اگر date1 قبل از date2 باشد ، قبل از true باز می گردد. اگر اینطور نیست ، قبل از آن false false برمی گردد.

    System.out.print (date1.before (date2)) ؛ // System.out.print واقعی (date2.before (date2)) را چاپ می کند ؛ // غلط چاپ می کند

4301351 6
4301351 6

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

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

    System.out.print (date2.after (date1))؛ // System.out.print درست (date1.after (date2))؛ // اشتباه چاپ می کند

4301351 7
4301351 7

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

کد زیر یک مورد درست و غلط را نشان می دهد. اگر تاریخها مساوی باشند ، مقدار true برابر است. اگر آنها نباشند ، برابر است با false false.

    System.out.print (date1.equals (date3))؛ // System.out.print درست (date1.equals (date2))؛ // false را چاپ می کند

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

4301351 8
4301351 8

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

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

4301351 9
4301351 9

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

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

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

4301351 10
4301351 10

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

کد زیر باید true را چاپ کند زیرا cal1 قبل از cal2 است.

    System.out.print (cal1.before (cal2))؛ // درست چاپ خواهد شد

4301351 11
4301351 11

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

کد زیر باید غلط چاپ کند زیرا cal1 قبل از cal2 است.

    System.out.print (cal1.after (cal2)) ؛ // غلط چاپ می کند

4301351 12
4301351 12

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

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

    System.out.println (cal1.equals (cal3)) ؛ // true را چاپ می کند: cal1 == cal3 System.out.print (cal1.equals (cal2))؛ // غلط چاپ می کند: cal1! = cal2

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

4301351 13
4301351 13

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

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

4301351 14
4301351 14

مرحله 2. اشیاء طولانی مدت را ایجاد کنید

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

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

4301351 15
4301351 15

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

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

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

4301351 16
4301351 16

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

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

    if (time2> time1) {System.out.println ("date2 is after date1")؛ // از time2> time1} else {System.out.println ("date2 پس از date1 نیست") چاپ می شود؛ }

4301351 17
4301351 17

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

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

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

توصیه شده: