Javaдагы күндөрдү салыштырыңыз

Автор: Roger Morrison
Жаратылган Күнү: 24 Сентябрь 2021
Жаңыртуу Күнү: 1 Июль 2024
Anonim
2022 жылы Java бэк-енді әзірлеушілеріне арналған 7 технологиялық үрдістер [MJC]
Видео: 2022 жылы Java бэк-енді әзірлеушілеріне арналған 7 технологиялық үрдістер [MJC]

Мазмун

Javaдагы күндөрдү салыштыруунун бир нече жолу бар. Ички дата, убакыттын узак (узак) чекити катары көрсөтүлөт - 1970-жылдын 1-январынан бери өткөн миллисекундалардын саны. Java-да, дата Date объектиси болуп саналат, демек, анда даталарды салыштыруунун бир нече ыкмалары бар. Эки датаны салыштыруунун кандай гана ыкмасы болбосун, эки датанын тең өткөн мезгилин салыштырат.

Басуу

4-ыкманын 1-ыкмасы: "ComparTo" командасын колдонуу

  1. ComparTo колдон. Дата ComparableDate> колдонмосун жүзөгө ашырат, ошондуктан эки датаны салыштыруу усулун колдонуп, бири-бири менен түздөн-түз салыштырууга болот. Эгерде даталар ошол эле учурду көрсөтсө, анда ыкма нөлгө айланат. Эгер салыштыруу күнү дата аргументинен мурун болсо, анда терс маани кайтарылып берилет. Эгерде салыштыруу күнү дата аргументине караганда кечирээк күн болсо, анда оң маани кайтарылып берилет. Эгерде даталар бирдей болсо, нөл кайтарылып берилет.
  2. Date объектилерин түзүү. Аларды салыштырып баштоодон мурун ар бир дата объектисин түзүшүңүз керек болот. Мунун бир жолу SimpleDateFormat классын колдонуу. Бул даталар объектилерине даталарды оңой киргизүүгө мүмкүнчүлүк берет.

      SimpleDateFormat sdf = жаңы SimpleDateFormat ("yyyy-MM-dd"); // Жаңы дата объектилериндеги баалуулуктарды жарыялоо үчүн.Даталарды түзүүдө бирдей күндүн форматын колдонуңуз Date date1 = sdf.parse ("1995-02-23"); // date1 23-февраль 1995-жыл Date date2 = sdf.parse ("2001-10-31"); // date2 - 31-октябрь, 2001-жыл Date date3 = sdf.parse ("1995-02-23"); // дата3 23-февраль 1995-жыл

  3. Дата объектилерин салыштырыңыз. Төмөндө ар бир учур көрсөтүлөт - кем, барабар жана чоң.

      date1.compareTo (date2); // date1 дата2, 0 дата2ден аз.compareTo (дата1); // date2> date1, 0 date1.compareTo (date3) дан жогору кайтарат; // date1 = date3, 0 кайтарат

4-ыкманын 2-ыкмасы: "барабар, кийин жана мурун" ыкмаларын колдонуу

  1. Барабар, кийин жана андан мурун. Даталарды, кийин жана андан мурунку методдорду колдонуп бири-бири менен салыштырууга болот. Эгерде эки дата бир эле убакытты көрсөтсө, анда барабар ыкма "true" деп кайтып келет. Мисалы, буга чейин түзүлгөн даталарды ComparTo методу аркылуу колдонот.
  2. Мурунку ыкманы колдонуп салыштырыңыз. Төмөндөгү код чыныгы жана жалган учурларын көрсөтөт. Эгерде date1 date2ден эрте болсо, анда натыйжа чын. Эгер жок болсо, мурун false деп кайтарылат.

      System.out.print (date1.before (date2)); // чыныгы System.out.print басып чыгаруу (date2.before (date2)); // false деп басып чыгарыңыз

  3. Муну кийинки ыкма менен салыштырыңыз. Төмөндөгү код чыныгы жана жалган учурларын көрсөтөт. Эгерде date2 date1ден кечирээк болсо, анда true дегенди кайтарат. Эгер жок болсо, анда false деп кайтарылат.

      System.out.print (date2.after (date1)); // чыныгы System.out.print (date1.after (date2)) басып чыгаруу; // жалган басуу

  4. Барабар ыкмасын колдонуу менен салыштырып көрүңүз. Төмөндөгү код чыныгы жана жалган учурларын көрсөтөт. Эгерде даталар бирдей болсо, барабар чыныгы мааниге ээ. Эгер андай болбосо, барабар калп деп кайтарат.

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

4-ыкманын 3-ыкмасы: Жылнаама классын колдонуу

  1. Жылнаама классын колдонуңуз. Calendar классында ошондой эле салыштыруу үчүн, барабар, кийин жана андан мурунку методдору бар, алар жогоруда көрсөтүлгөн күндөр үчүн иштелип чыккан. Демек, эгерде датанын датасы календарда сакталса, анда эки күндү салыштыруу үчүн, "күндү" бөлүп алуунун кажети жок.
  2. Жылнааманын мисалын түзүү. Жылнаама ыкмаларын колдонуу үчүн, айрым Жылнаама инстанциялары керек. Бактыга жараша, сиз убакыт инстанцияларында түзүлгөн убакытты колдоно аласыз.

      Calendar cal1 = Calendar.getInstance (); // cal1 жарыялаган Calendar 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)); // true true басып чыгар

  4. Кийин колдонуп cal1 жана cal2 салыштырыңыз. Төмөндөгү код жалган жооп берет, анткени cal1 cal2ден эртерээк.

      System.out.print (cal1.after (cal2)); // false деп басып чыгарыңыз

  5. Барабарды колдонуп cal1 жана cal2 салыштырып көрүңүз. Төмөндөгү коддо туура жана жалган мисалдары келтирилген. Шарт жылнааманын салыштырылган учурларына жараша болот. Төмөнкү код кийинки сапта "true", андан кийин "false" деп кайтарат.

      System.out.println (cal1.equals (cal3)); // print true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // false: cal1! = cal2 басып чыгарыңыз

4-ыкманын 4-ыкмасы: "getTime" ыкмасын колдонуу

  1. GetTime колдонуу. Ошондой эле, эки убакыт упайын түздөн-түз салыштырып көрсө болот, бирок жогоруда айтылган ыкмалардын бири дагы окулуучу натыйжаларды бериши мүмкүн жана ошону менен артыкчылык берилет. Бул эки алгачкы типтеги маалыматтарды салыштыруу, андыктан "", ">" жана "==" менен жасоого болот.
  2. "Узун" убакыт объектилерин түзүңүз. Даталарды салыштыруудан мурун, мурун түзүлгөн Күн объектилеринин маалыматтарынын арасынан узун бүтүн сандарды түзүшүңүз керек. Бактыга жараша, getTime () ыкмасы сиз үчүн иштин көпчүлүгүн аткарат.

      long time1 = getTime (дата1); // дата1дин алгачкы убактысын1 жарыялайт узак убакыт2 = getTime (дата2); // дата2дин алгачкы убактысын2 жарыялайт

  3. "Кичине" теңдемесин колдонуңуз. Ушул эки бүтүн маанини салыштыруу үчүн "кем" белгисин () колдонуңуз. Убакыт1 убакыт2ден аз болгондуктан, экранда биринчи билдирүү басылып чыгышы керек. Else оператору туура синтаксис үчүн камтылган.

      if (time1 time2) {System.out.println ("date1 date2ден эрте"); // басып чыгаруу, анткени time1 time2} else {System.out.println ("date1 date2ден кечиктирилген же ага теңелген"); }

  4. "Чоңураак" салыштырып көрүңүз. Ушул эки сандарды салыштыруу үчүн "чоң" белгисин (>) колдонуңуз. Убакыт1 убакыт2ден чоң болгондуктан, экранда биринчи билдирүү басылып чыгат. Else оператору туура синтаксис үчүн киргизилген.

      if (time2> time1) {System.out.println ("date2 date1ден кийин келет"); // басып чыгаруу, анткени time2> time1} else {System.out.println ("date2 date1ден эрте же ага барабар"); }

  5. "Барабар" салыштыруу жаса. Ушул эки сандарды салыштыруу үчүн (==) белгисин колдонуңуз. Убакыт1 убакыт3кө барабар болгондуктан, биринчи билдирүү басылышы керек. Эгер программа else операторуна өтсө, анда убакыт бирдей эмес дегенди билдирет.

      if (time1 == time2) {System.out.println ("Даталар бирдей"); } else {System.out.println ("Дата бирдей эмес"); // басып чыгар, анткени time1! = time2}