تاریخ ها را در جاوا مقایسه کنید

نویسنده: Roger Morrison
تاریخ ایجاد: 24 سپتامبر 2021
تاریخ به روزرسانی: 13 ممکن است 2024
Anonim
نحوه مقایسه دو تاریخ در جاوا با استفاده از متد compareTo().
ویدیو: نحوه مقایسه دو تاریخ در جاوا با استفاده از متد compareTo().

محتوا

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

گام برداشتن

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

  1. از compareTo استفاده کنید. Date ComparableDate را پیاده سازی می کند> و بنابراین می توان مستقیماً دو تاریخ را با استفاده از روش compareTo با یکدیگر مقایسه کرد. اگر تاریخ ها همان لحظه را در زمان نشان دهند ، روش صفر برمی گردد. اگر تاریخ مقایسه قبل از آرگومان تاریخ باشد ، مقدار منفی بازگردانده می شود. اگر تاریخ مقایسه شده تاریخ دیرتری نسبت به استدلال تاریخ باشد ، مقدار مثبت بازگردانده می شود. اگر تاریخ ها یکسان باشند ، صفر برمی گردد.
  2. اشیا Date تاریخ را ایجاد کنید. قبل از شروع مقایسه باید هر شی تاریخ را ایجاد کنید. یکی از راه های این کار استفاده از کلاس SimpleDateFormat است. با این کار می توانید تاریخ ها را به راحتی وارد اشیا Date Date کنید.

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

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

      date1.compareTo (date2)؛ // date1 date2 ، کمتر از 0 date2.compareTo (date1)؛ // date2> date1 ، بازدهی بیش از 0 date1.compareTo (date3) ؛ // date1 = date3 ، 0 را برمی گرداند

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

  1. از موارد برابر ، بعد و قبل استفاده کنید. تاریخ ها را می توان با استفاده از روش های برابر ، بعد و قبل با یکدیگر مقایسه کرد. اگر دو تاریخ یک زمان را نشان دهند ، روش برابر "درست" برمی گردد. نمونه ها از تاریخ های ایجاد شده قبلی از طریق روش مقایسه استفاده می کنند.
  2. با استفاده از روش قبل مقایسه کنید. کد زیر یک مورد درست و غلط را نشان می دهد. اگر date1 زودتر از date2 باشد ، نتیجه درست است. در غیر این صورت ، قبل از بازگشت نادرست است.

      System.out.print (date1.before (date2))؛ // چاپ واقعی System.out.print (date2.before (date2))؛ // چاپ نادرست

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

      System.out.print (date2.after (date1))؛ // print true System.out.print (date1.after (date2))؛ // print false

  4. با استفاده از روش برابر مقایسه کنید. کد زیر یک مورد درست و غلط را نشان می دهد. اگر تاریخ ها یکسان باشد ، مقدار برابر درست است. در غیر این صورت ، برابر برابر نادرست است.

      System.out.print (date1.equals (date3))؛ // print true System.out.print (date1.equals (date2))؛ // print false

روش 3 از 4: استفاده از کلاس Calendar

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

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

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

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

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

      System.out.print (cal1.after (cal2)) ؛ // چاپ نادرست

  5. cal1 و cal2 را با استفاده از برابر مقایسه کنید. کد زیر مثالی از درست و نادرست را نشان می دهد. این شرایط به موارد تقویم بستگی دارد. کد زیر در خط بعدی "true" و سپس "false" را برمی گرداند.

      System.out.println (cal1. Equals (cal3)) ؛ // چاپ درست: cal1 == cal3 System.out.print (cal1.equals (cal2))؛ // چاپ نادرست: cal1! = cal2

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

  1. از getTime استفاده کنید. همچنین می توان به طور مستقیم دو نقطه زمانی را مقایسه کرد ، اگرچه هر یک از رویکردهای فوق به احتمال زیاد نتایج خواناتر خواهد داشت و بنابراین ترجیح داده می شود. این مقایسه دو نوع داده ابتدایی است ، بنابراین می توان با "" ، ">" و "==" انجام داد.
  2. اشیا time زمان طولانی را ایجاد کنید. قبل از مقایسه تاریخ ها ، باید از داده های اشیا Date Date که قبلاً ایجاد شده اند ، عدد صحیح طولانی ایجاد کنید. خوشبختانه روش () getTime بیشتر کارها را برای شما انجام می دهد.

      زمان طولانی 1 = getTime (تاریخ 1) ؛ // زمان ابتدایی 1 از تاریخ 1 را اعلام می کند زمان طولانی 2 = getTime (تاریخ 2) ؛ // زمان ابتدایی 2 از date2 را اعلام می کند

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

      if (time1 time2) {System.out.println ("date1 زودتر از date2 است")؛ // چاپ زیرا time1 time2} else {System.out.println ("date1 دیرتر از تاریخ 2 است یا برابر آن")؛ }

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

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

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

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