ປຽບທຽບວັນທີໃນ Java

ກະວີ: Roger Morrison
ວັນທີຂອງການສ້າງ: 24 ເດືອນກັນຍາ 2021
ວັນທີປັບປຸງ: 1 ເດືອນກໍລະກົດ 2024
Anonim
ປຽບທຽບວັນທີໃນ Java - ຄໍາແນະນໍາ
ປຽບທຽບວັນທີໃນ Java - ຄໍາແນະນໍາ

ເນື້ອຫາ

ມີຫລາຍວິທີໃນການປຽບທຽບວັນທີໃນ Java. ພາຍໃນປະເທດ, ວັນທີແມ່ນສະແດງເປັນຈຸດ (ຍາວ) ໃນເວລາ - ຈຳ ນວນມິນລິລິດທີ່ໄດ້ຜ່ານໄປຕັ້ງແຕ່ວັນທີ 1 ມັງກອນ 1970. ໃນເກາະ Java, ວັນທີແມ່ນວັນທີວັດຖຸຊຶ່ງ ໝາຍ ຄວາມວ່າມັນມີຫລາຍວິທີໃນການປຽບທຽບວັນທີ. ວິທີການໃດ ໜຶ່ງ ຂອງການປຽບທຽບສອງວັນໂດຍພື້ນຖານແລ້ວຈະປຽບທຽບເວລາທີ່ຜ່ານໄປຂອງວັນທີທັງສອງ.

ເພື່ອກ້າວ

ວິທີທີ່ 1 ຂອງ 4: ການໃຊ້ ຄຳ ສັ່ງ "ປຽບທຽບ"

  1. ໃຊ້ປຽບທຽບ. ວັນທີການປະຕິບັດ ComparableDate> ແລະດັ່ງນັ້ນສອງວັນສາມາດປຽບທຽບໂດຍກົງກັບກັນແລະກັນໂດຍໃຊ້ວິທີການປຽບທຽບ. ຖ້າວັນທີສະແດງເວລາດຽວກັນຕາມເວລາ, ວິທີການຈະກັບຄືນສູນ. ຖ້າວັນທີທີ່ຖືກປຽບທຽບແມ່ນກ່ອນການໂຕ້ຖຽງວັນທີ, ຫຼັງຈາກນັ້ນ, ມູນຄ່າທາງລົບຈະຖືກສົ່ງຄືນ. ຖ້າວັນທີ່ຖືກປຽບທຽບແມ່ນວັນຕໍ່ມາກ່ວາວັນທີຂອງການໂຕ້ຖຽງ, ຫຼັງຈາກນັ້ນມູນຄ່າໃນທາງບວກຈະຖືກສົ່ງຄືນ. ຖ້າວັນທີແມ່ນຄືກັນ, ເລກສູນຈະຖືກສົ່ງຄືນ.
  2. ສ້າງວັດຖຸວັນທີ. ທ່ານຈະຕ້ອງສ້າງວັດຖຸວັນທີແຕ່ລະຄັ້ງກ່ອນທີ່ທ່ານຈະເລີ່ມຕົ້ນປຽບທຽບພວກມັນ. ວິທີ ໜຶ່ງ ທີ່ຈະເຮັດສິ່ງນີ້ແມ່ນການ ນຳ ໃຊ້ຫ້ອງຮຽນແບບ SimpleDateFormat. ນີ້ຊ່ວຍໃຫ້ທ່ານສາມາດໃສ່ວັນທີເຂົ້າໄປໃນວັດຖຸ Date ໄດ້ຢ່າງງ່າຍດາຍ.

      SimpleDateFormat sdf = SimpleDateFormat ໃໝ່ ("yyyy-MM-dd"); // ສຳ ລັບການປະກາດຄຸນຄ່າໃນວັດຖຸວັນທີ ໃໝ່.ໃຊ້ຮູບແບບວັນທີດຽວກັນໃນເວລາສ້າງວັນທີວັນທີວັນທີ 1 = sdf.parse ("1995-02-23"); // date1 ແມ່ນວັນທີ 23 ເດືອນກຸມພາປີ 1995 ວັນທີ 2 = sdf.parse ("2001-10-31"); // date2 ແມ່ນວັນທີ 31 ເດືອນຕຸລາປີ 2001 ວັນທີ 3 = sdf.parse ("1995-02-23"); // date3 ແມ່ນວັນທີ 23 ເດືອນກຸມພາປີ 1995

  3. ປຽບທຽບວັດຖຸວັນທີ. ຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນແຕ່ລະກໍລະນີ - ນ້ອຍກວ່າ, ເທົ່າແລະໃຫຍ່ກວ່າ.

      date1.compareTo (date2); // date1 date2, ນ້ອຍກວ່າ 0 date2.compareTo (date1); // date2> date1, ກັບຄືນຫຼາຍກວ່າ 0 date1.compareTo (date3); // date1 = date3, ກັບຄືນ 0

ວິທີທີ່ 2 ຂອງ 4: ການ ນຳ ໃຊ້ວິທີການຕ່າງໆ "ເທົ່າກັບ, ຫລັງແລະກ່ອນ"

  1. ໃຊ້ຄວາມສະເຫມີພາບ, ຫລັງແລະກ່ອນ. ວັນທີສາມາດປຽບທຽບກັບກັນແລະກັນໂດຍໃຊ້ວິທີການທີ່ເທົ່າທຽມກັນ, ຫລັງ, ແລະກ່ອນວິທີການ. ຖ້າສອງວັນທີ່ສະແດງໃນເວລາດຽວກັນ, ວິທີການທຽບເທົ່າຈະກັບຄືນ "ຄວາມຈິງ". ຕົວຢ່າງການ ນຳ ໃຊ້ວັນທີທີ່ໄດ້ສ້າງຂື້ນຜ່ານມາຜ່ານວິທີການປຽບທຽບ.
  2. ປຽບທຽບການ ນຳ ໃຊ້ວິທີການກ່ອນ. ລະຫັດຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນກໍລະນີຂອງຄວາມຈິງແລະບໍ່ຖືກຕ້ອງ. ຖ້າວັນທີ 1 ໄວກວ່າວັນທີ 2, ຜົນໄດ້ຮັບແມ່ນຖືກຕ້ອງ. ຖ້າບໍ່, ກ່ອນທີ່ຈະສົ່ງຄືນທີ່ບໍ່ຖືກຕ້ອງ.

      System.out.print (date1.before (date2)); // print true System.out.print (date2.before (date2)); // ພິມຜິດ

  3. ປຽບທຽບສິ່ງນີ້ກັບວິທີການຫລັງ. ລະຫັດຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນກໍລະນີຂອງຄວາມຈິງແລະບໍ່ຖືກຕ້ອງ. ຖ້າວັນທີ 2 ຊ້າກວ່າວັນທີ 1, ຫຼັງຈາກນັ້ນກໍ່ຈະກັບມາອີກ. ຖ້າບໍ່ແມ່ນ, ຫຼັງຈາກສົ່ງຄືນບໍ່ຖືກຕ້ອງ.

      System.out.print (date2.after (date1)); // print true System.out.print (date1.after (date2)); // ພິມຜິດ

  4. ປຽບທຽບການ ນຳ ໃຊ້ວິທີການທຽບເທົ່າ. ລະຫັດຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນກໍລະນີຂອງຄວາມຈິງແລະບໍ່ຖືກຕ້ອງ. ຖ້າວັນທີແມ່ນຄືກັນ, ເທົ່າກັບຜົນຕອບແທນທີ່ແທ້ຈິງ. ຖ້າບໍ່ແມ່ນ, ເທົ່າກັບຜົນທີ່ບໍ່ຖືກຕ້ອງ.

      System.out.print (date1.equals (date3)); // print true System.out.print (date1.equals (date2)); // ພິມຜິດ

ວິທີທີ 3 ຂອງ 4: ການ ນຳ ໃຊ້ຫ້ອງຮຽນປະຕິທິນ

  1. ໃຊ້ຫ້ອງຮຽນປະຕິທິນ. ຫ້ອງຮຽນປະຕິທິນຍັງມີວິທີການປຽບທຽບ, ທຽບເທົ່າ, ຫລັງ, ແລະກ່ອນ, ເຊິ່ງເຮັດວຽກແບບດຽວກັນກັບທີ່ໄດ້ອະທິບາຍຂ້າງເທິງ ສຳ ລັບຊັ້ນວັນທີ. ສະນັ້ນຖ້າຂໍ້ມູນວັນທີຖືກເກັບຮັກສາໄວ້ໃນປະຕິທິນ, ບໍ່ ຈຳ ເປັນຕ້ອງສະກັດ "ວັນທີ", ພຽງແຕ່ປຽບທຽບສອງວັນທີ.
  2. ສ້າງຕົວຢ່າງຂອງປະຕິທິນ. ເພື່ອໃຊ້ວິທີການປະຕິທິນທ່ານຕ້ອງການຕົວຢ່າງປະຕິທິນບາງຢ່າງ. ໂຊກດີ, ທ່ານສາມາດໃຊ້ເວລາທີ່ຜະລິດຈາກວັນທີຂອງຕົວຢ່າງວັນທີ.

      ປະຕິທິນ cal1 = Calendar.getInstance (); // ປະກາດ cal1 ປະຕິທິນ cal2 = Calendar.getInstance (); // ປະກາດ cal2 ປະຕິທິນ cal3 = Calendar.getInstance (); // ປະກາດ cal3 cal1.setTime (date1); // ນຳ ໃຊ້ວັນທີທີ່ cal1 cal2.setTime (date2); cal3.setTime (date3);

  3. ປຽບທຽບ cal1 ແລະ cal2 ໂດຍໃຊ້ກ່ອນ. ລະຫັດຂ້າງລຸ່ມນີ້ຈະກັບຄືນມາເປັນຄວາມຈິງເພາະວ່າ cal1 ກ່ອນ ໜ້າ ນັ້ນແມ່ນໄວກ່ວາ cal2.

      System.out.print (cal1.before (cal2)); // ພິມເປັນຄວາມຈິງ

  4. ປຽບທຽບ cal1 ແລະ cal2 ໂດຍໃຊ້ຫຼັງ. ລະຫັດຂ້າງລຸ່ມນີ້ສົ່ງຄືນຂໍ້ມູນທີ່ບໍ່ຖືກຕ້ອງ, ເພາະວ່າ cal1 ໄວກວ່າ cal2.

      System.out.print (cal1.after (cal2)); // ພິມຜິດ

  5. ປຽບທຽບ cal1 ແລະ cal2 ໂດຍໃຊ້ equals. ລະຫັດຂ້າງລຸ່ມນີ້ສະແດງຕົວຢ່າງຂອງທັງຄວາມຈິງແລະບໍ່ຖືກຕ້ອງ. ເງື່ອນໄຂແມ່ນຂື້ນກັບຕົວຢ່າງຂອງປະຕິທິນທີ່ຖືກປຽບທຽບ. ລະຫັດຂ້າງລຸ່ມນີ້ກັບຄືນມາ "ຖືກຕ້ອງ" ແລະຫຼັງຈາກນັ້ນ "ບໍ່ຖືກຕ້ອງ" ຢູ່ໃນເສັ້ນຕໍ່ໄປ.

      ລະບົບ .out.println (cal1.equals (cal3)); // print true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // ພິມຜິດ: cal1! = cal2

ວິທີທີ 4 ຂອງ 4: ໂດຍໃຊ້ວິທີ "getTime"

  1. ໃຊ້ getTime. ມັນຍັງເປັນໄປໄດ້ທີ່ຈະປຽບທຽບສອງຈຸດເວລາໂດຍກົງ, ເຖິງແມ່ນວ່າວິທີການໃດ ໜຶ່ງ ທີ່ໄດ້ກ່າວມາກ່ອນ ໜ້າ ນີ້ອາດຈະໃຫ້ຜົນໄດ້ຮັບທີ່ສາມາດອ່ານໄດ້ຫຼາຍຂື້ນແລະດັ່ງນັ້ນຈຶ່ງມັກ. ນີ້ແມ່ນການປຽບທຽບສອງປະເພດຂໍ້ມູນເບື້ອງຕົ້ນ, ສະນັ້ນສາມາດເຮັດໄດ້ດ້ວຍ "", ">" ແລະ "==".
  2. ສ້າງວັດຖຸເວລາ "ຍາວ". ກ່ອນທີ່ທ່ານຈະສາມາດປຽບທຽບວັນທີ, ທ່ານຕ້ອງສ້າງຕົວເລກຍາວຈາກຂໍ້ມູນຂອງວັດຖຸວັນທີທີ່ສ້າງຂື້ນກ່ອນ ໜ້າ ນີ້. ໂຊກດີ, ວິທີການ getTime () ຈະເຮັດວຽກສ່ວນໃຫຍ່ຂອງທ່ານ.

      long time1 = getTime (ວັນທີ 1); // ປະກາດເວລາເບື້ອງຕົ້ນຂອງວັນທີ 1 ເວລາຍາວ 2 = ເວລາ (2); // ປະກາດເວລາເບື້ອງຕົ້ນຂອງວັນທີ 2

  3. ໃຊ້ສົມຜົນ "ນ້ອຍກວ່າ". ໃຊ້ສັນຍາລັກ "ນ້ອຍກວ່າ" () ເພື່ອປຽບທຽບຄ່ານິຍົມສອງນີ້. ເນື່ອງຈາກເວລາ 1 ໜ້ອຍ ກວ່າເວລາ 2, ຂໍ້ຄວາມ ທຳ ອິດຄວນຖືກພິມໃສ່ ໜ້າ ຈໍ. ຄຳ ຖະແຫຼງການອື່ນແມ່ນລວມເຂົ້າ ສຳ ລັບ syntax ທີ່ຖືກຕ້ອງ.

      ຖ້າ (time1 time2) {System.out.println ("date1 ໄວກວ່າວັນທີ 2"); // print because time1 time2} else {System.out.println ("date1 ຊ້າກວ່າຫລືເທົ່າກັບວັນທີ່ 2"); }

  4. ເຮັດການປຽບທຽບ "ໃຫຍ່ກວ່າ". ໃຊ້ສັນຍາລັກ "ໃຫຍ່ກວ່າ" (>) ເພື່ອປຽບທຽບກັບເລກເຕັມສອງຕົວນີ້. ເນື່ອງຈາກວ່າເວລາ 1 ໃຫຍ່ກວ່າເວລາ 2, ຂໍ້ຄວາມ ທຳ ອິດຈະຖືກພິມລົງເທິງ ໜ້າ ຈໍ. ຄຳ ຖະແຫຼງການອື່ນແມ່ນລວມເຂົ້າ ສຳ ລັບ syntax ທີ່ຖືກຕ້ອງ.

      ຖ້າ (time2> time1) {System.out.println ("date2 ມາຫຼັງຈາກວັນທີ 1"); // print because time2> time1} else {System.out.println ("date2 ກ່ອນໄວກວ່າຫລືເທົ່າກັບວັນທີ 1"); }

  5. ເຮັດການປຽບທຽບ "ເທົ່າກັບ". ໃຊ້ສັນຍາລັກ (==) ເພື່ອປຽບທຽບສອງໂຕນີ້. ເນື່ອງຈາກເວລາ 1 ເທົ່າກັບເວລາ 3, ຂໍ້ຄວາມ ທຳ ອິດຄວນຖືກພິມ. ຖ້າໂຄງການເຂົ້າເຖິງ ຄຳ ຖະແຫຼງການອື່ນ, ມັນ ໝາຍ ຄວາມວ່າເວລາບໍ່ຄືກັນ.

      if (time1 == time2) {System.out.println ("ວັນທີເທົ່າກັນ"); } else {System.out.println ("ວັນທີບໍ່ເທົ່າກັນ"); // ພິມເພາະ time1! = time2}