Параўнайце даты ў Java

Аўтар: Roger Morrison
Дата Стварэння: 24 Верасень 2021
Дата Абнаўлення: 1 Ліпень 2024
Anonim
Топ 7 трендов в технологиях для Java back-end разработчика в 2022 году [MJC]
Відэа: Топ 7 трендов в технологиях для Java back-end разработчика в 2022 году [MJC]

Задаволены

Ёсць некалькі спосабаў параўнання дат у Java. Унутрана дата прадстаўлена як (доўгі) момант часу - колькасць мілісекунд, якія прайшлі з 1 студзеня 1970 г. У Java дата з'яўляецца аб'ектам Date, што азначае, што яна ўтрымлівае некалькі метадаў для параўнання дат. Любы метад параўнання дзвюх дат у асноўным будзе параўноўваць мінулы час абедзвюх дат.

Крок

Спосаб 1 з 4: Выкарыстанне каманды "compareTo"

  1. Выкарыстоўвайце compareTo. Дата рэалізуе ComparableDate> і таму дзве даты можна непасрэдна параўноўваць паміж сабой з дапамогай метаду compareTo. Калі даты паказваюць адзін і той жа момант часу, метад верне нуль. Калі дата, якая параўноўваецца, знаходзіцца перад аргументам даты, тады будзе вернута адмоўнае значэнне. Калі дата, якая параўноўваецца, больш позняя, чым дата аргумента даты, тады будзе вернута станоўчае значэнне. Калі даты аднолькавыя, нуль будзе вернуты.
  2. Стварыце аб'екты Date. Вам трэба будзе стварыць кожны аб'ект даты, перш чым вы зможаце іх параўноўваць. Адзін са спосабаў зрабіць гэта - ужыць клас SimpleDateFormat. Гэта дазваляе лёгка ўводзіць даты ў аб'екты Date.

      SimpleDateFormat sdf = новы SimpleDateFormat ("гггг-ММ-дд"); // Для аб'яўлення значэнняў у новых аб'ектах даты.Выкарыстоўвайце адзін і той жа фармат даты пры стварэнні дат Date date1 = sdf.parse ("1995-02-23"); // date1 - 23 лютага 1995 г. Date date2 = sdf.parse ("2001-10-31"); // date2 - 31 кастрычніка 2001 г. Дата date3 = sdf.parse ("23.02.1995"); // 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. Выкарыстоўвайце роўнае, пасля і да. Даты можна параўноўваць паміж сабой, выкарыстоўваючы роўныя, пасля і перад метадамі. Калі дзве даты паказваюць адзін і той жа час, метад equals верне "true". У прыкладах выкарыстоўваюцца раней створаныя даты з дапамогай метаду compareTo.
  2. Параўнайце, выкарыстоўваючы папярэдні метад. Прыведзены ніжэй код паказвае выпадак праўдзівага і ілжывага. Калі date1 раней, чым date2, вынік праўдзівы. Калі не, да вяртае false.

      System.out.print (date1.before (date2)); // друк праўдзіва System.out.print (date2.before (date2)); // друк ілжывы

  3. Параўнайце гэта з метадам after. Прыведзены ніжэй код паказвае выпадак праўдзівага і ілжывага. Калі date2 пазней, чым date1, то пасля вяртае true. Калі не, пасля вяртае false.

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

  4. Параўнайце, выкарыстоўваючы метад роўных. Прыведзены ніжэй код паказвае выпадак праўдзівага і ілжывага. Калі даты аднолькавыя, роўна вяртае true. Калі няма, роўна вяртае ілжывае.

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

Спосаб 3 з 4: Выкарыстанне класа "Каляндар"

  1. Карыстайцеся класам Каляндар. У класе Каляндар таксама ёсць метады compareTo, equals, after і before, якія працуюць гэтак жа, як апісана вышэй для класа даты. Такім чынам, калі дадзеныя даты захоўваюцца ў календары, няма неабходнасці здабываць "дату", проста параўноўваць дзве даты.
  2. Стварыць асобнік календара. Каб выкарыстоўваць метады календара, вам патрэбныя некаторыя асобнікі календара. На шчасце, вы можаце выкарыстоўваць час, згенераваны асобнікамі Date.

      Каляндар 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, выкарыстоўваючы раней. Прыведзены ніжэй код вяртае true, таму што cal1 раней, чым cal2.

      System.out.print (cal1.before (cal2)); // друк праўдзівы

  4. Параўнайце cal1 і cal2, выкарыстоўваючы пасля. Прыведзены ніжэй код вяртае false, таму што 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. Стварыце "доўгія" аб'екты часу. Перш чым параўноўваць даты, трэба стварыць доўгія цэлыя лікі з дадзеных раней створаных аб'ектаў Date. На шчасце, метад getTime () зробіць большую частку працы за вас.

      long time1 = getTime (date1); // абвяшчае прымітыўны time1 з date1 long time2 = getTime (date2); // аб'яўляе прымітыўны час2 даты2

  3. Выкарыстоўвайце ўраўненне "менш". Выкарыстоўвайце сімвал "менш" () для параўнання гэтых двух цэлых значэнняў. Паколькі time1 менш, чым time2, першае паведамленне павінна быць надрукавана на экране. Інструкцыя else уключана для правільнага сінтаксісу.

      if (time1 time2) {System.out.println ("date1 раней, чым date2"); // друкуем, таму што time1 time2} else {System.out.println ("date1 пазней або роўны date2"); }

  4. Зрабіце параўнанне "большае, чым". Выкарыстоўвайце сімвал "большы за" (>) для параўнання гэтых двух цэлых лікаў. Паколькі time1 больш, чым time2, першае паведамленне друкуецца на экране. Заява "else" уключана для правільнага сінтаксісу.

      if (time2> time1) {System.out.println ("date2 ідзе пасля 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}