Համեմատեք Java- ի ամսաթվերը

Հեղինակ: Roger Morrison
Ստեղծման Ամսաթիվը: 24 Սեպտեմբեր 2021
Թարմացման Ամսաթիվը: 1 Հուլիս 2024
Anonim
Համեմատեք Java- ի ամսաթվերը - Խորհուրդներ
Համեմատեք Java- ի ամսաթվերը - Խորհուրդներ

Բովանդակություն

Java- ում ամսաթվերը համեմատելու մի քանի եղանակ կա: Ներքինում ամսաթիվը ներկայացվում է որպես ժամանակի (երկար) պահ `1970 թ. Հունվարի 1-ից անցած միլիվայրկյանների քանակը: Javaավայում ամսաթիվը Date օբյեկտ է, ինչը նշանակում է, որ այն պարունակում է ամսաթվերը համեմատելու բազմաթիվ մեթոդներ: Երկու ամսաթվերի համեմատության ցանկացած մեթոդ հիմնականում կհամեմատի երկու ամսաթվերի անցած ժամանակը:

Քայլել

4-ի մեթոդ 1` Օգտագործելով «համեմատել» հրամանը

  1. Օգտագործել համեմատել Ամսաթիվն իրականացնում է ComparableDate> և, այսպես, երկու ամսաթվերը կարելի է ուղղակիորեն համեմատել միմյանց հետ, օգտագործելով compareTo մեթոդը: Եթե ​​ամսաթվերը նշում են ժամանակի նույն պահը, մեթոդը կվերադարձնի զրոյի: Եթե ​​համեմատության ամսաթիվը նախքան ամսաթվի փաստարկն է, ապա բացասական արժեքը կվերադարձվի: Եթե ​​համեմատության ամսաթիվը ավելի ուշ ամսաթիվ է, քան ամսաթվի փաստարկի տվյալը, ապա դրական արժեքը կվերադարձվի: Եթե ​​ամսաթվերը նույնն են, զրոն կվերադարձվի:
  2. Ստեղծեք Date օբյեկտները: Նախքան սկսեք համեմատել, դուք պետք է ստեղծեք ամսաթվի յուրաքանչյուր օբյեկտ: Դա անելու միջոցներից մեկը SimpleDateFormat դասի կիրառումն է: Սա թույլ է տալիս ամսաթվերը հեշտությամբ մուտքագրել Ամսաթիվ օբյեկտների մեջ:

      SimpleDateFormat sdf = նոր SimpleDateFormat ("yyyy-MM-dd"); // Նոր ամսաթվի օբյեկտներում արժեքներ հայտարարելու համար:Օգտագործեք ամսաթվերի նույն ձևաչափը `ամսաթվերը ստեղծելիս Ամսաթիվ date1 = sdf.parse (" 1995-02-23 "); // ամսաթիվ 1-ը 1995 թվականի փետրվարի 23-ն է Ամսաթիվ date2 = sdf.parse ("2001-10-31"); // ամսաթիվ 2-ը 2001 թվականի հոկտեմբերի 31-ին Ամսաթիվ date3 = sdf.parse ("1995-02-23"); // ամսաթիվ 3-ը 1995 թվականի փետրվարի 23-ն է

  3. Համեմատեք ամսաթվի օբյեկտները: Ստորև բերված է յուրաքանչյուր դեպք. Պակաս, հավասար և մեծ:

      date1.compareTo (ամսաթիվ 2); // date1 date2, պակաս 0 date2.compareTo (date1); // date2> date1, վերադարձնում է ավելի մեծ, քան 0 date1.compareTo (date3); // date1 = date3, վերադարձնում է 0

4-ի մեթոդ 2. Օգտագործելով «հավասար է, դրանից հետո և առաջ» մեթոդները

  1. Օգտագործեք հավասարներ, դրանից հետո և դրանից առաջ: Ամսաթվերը կարելի է համեմատել միմյանց հետ `օգտագործելով հավասարները, հետո և առաջ մեթոդները: Եթե ​​երկու ամսաթիվ նշում է միևնույն ժամանակը, հավասարների մեթոդը կվերադառնա «ճիշտ»: Օրինակներն օգտագործում են նախկինում ստեղծված ամսաթվերը համեմատության մեթոդով:
  2. Համեմատեք `օգտագործելով նախորդ մեթոդը: Ստորև բերված ծածկագիրը ցույց է տալիս իրականի և կեղծի դեպք: Եթե ​​date1- ը date2- ից շուտ է, արդյունքը ճիշտ է: Եթե ​​ոչ, նախքան կեղծ վերադառնալը:

      System.out.print (ամսաթիվ 1. նախքան (ամսաթիվ 2)); // տպել ճշմարիտ System.out.print (ամսաթիվ 2. նախքան (ամսաթիվ 2)); // տպել կեղծ

  3. Համեմատեք սա after մեթոդի հետ: Ստորև բերված ծածկագիրը ցույց է տալիս իրականի և կեղծի դեպք: Եթե ​​date2- ը ամսաթվից ուշ է, ապա վերադարձից հետո 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

4-ի մեթոդ 3. Օրացույցի դասի օգտագործումը

  1. Օգտագործեք Օրացույց դասը: Օրացույցի դասը նաև ունի համեմատության To, հավասար, հետո և առաջ մեթոդները, որոնք աշխատում են այնպես, ինչպես վերը նկարագրված է ամսաթվի դասի համար: Այսպիսով, եթե ամսաթվի տվյալները պահվում են օրացույցում, ապա անհրաժեշտ չէ «ամսաթիվ» հանել, պարզապես երկու ամսաթիվ համեմատելու համար:
  2. Ստեղծեք Օրացույցի օրինակ: Օրացույցի մեթոդներն օգտագործելու համար ձեզ հարկավոր են Օրացույցի որոշ օրինակներ: Բարեբախտաբար, Դուք կարող եք ժամանակն օգտագործել այնպես, ինչպես գեներացվել է Ամսաթվի օրինակներով:

      Օրացույց cal1 = Calendar.getInstance (); // հայտարարում է cal1 Օրացույց cal2 = Calendar.getInstance (); // հայտարարում է cal2 Օրացույց cal3 = Calendar.getInstance (); // հայտարարում է cal3 cal1.setTime (ամսաթիվ 1); // ամսաթիվը կիրառում է cal1 cal2.setTime (ամսաթիվ 2); cal3.setTime (ամսաթիվ 3);

  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- ը `օգտագործելով հավասարները: Ստորև բերված ծածկագիրը ցույց է տալիս ինչպես ճիշտ, այնպես էլ կեղծի օրինակ: Վիճակը կախված է համեմատվող Օրացույցի դեպքերից: Ստորև բերված կոդը հաջորդ տողում վերադարձնում է «ճշմարիտ», ապա «կեղծ»:

      System.out.println (cal1. Հավասար (cal3)); // տպել ճշմարիտ. cal1 == cal3 System.out.print (cal1.equals (cal2)); // տպել կեղծ ՝ cal1! = cal2

4-ի մեթոդ 4. Օգտագործելով «getTime» մեթոդը

  1. Օգտագործեք getTime: Հնարավոր է նաև ուղղակիորեն համեմատել երկու ժամանակային կետերը, չնայած վերոհիշյալ մոտեցումներից որևէ մեկը, ամենայն հավանականությամբ, կտա ավելի ընթեռնելի արդյունքներ, ուստի նախընտրելի է: Սա տվյալների երկու պարզունակ տիպերի համեմատություն է, ուստի կարելի է անել «», «>» և «==» -ի հետ:
  2. Ստեղծեք «երկար» ժամանակի օբյեկտները: Ամսաթվերը համեմատելուց առաջ դուք պետք է ստեղծեք երկար ամբողջ թվեր նախկինում ստեղծված Date օբյեկտների տվյալներից: Բարեբախտաբար, getTime () մեթոդը ձեզ համար կատարելու է աշխատանքի մեծ մասը:

      երկար ժամանակ 1 = getTime (ամսաթիվ 1); // հայտարարում է ամսաթվի 1 պարզ ժամանակի 1 երկար ժամանակ 2 = getTime (ամսաթիվ 2); // հայտարարում է ամսաթվի 2 պարզունակ ժամանակը 2

  3. Օգտագործեք «պակաս» հավասարումը: Օգտագործեք «պակաս» խորհրդանիշը () այս երկու ամբողջ արժեքները համեմատելու համար: Քանի որ time1- ը time2- ից պակաս է, առաջին հաղորդագրությունը պետք է տպվի էկրանին: Ուրիշ հայտարարությունը ներառված է ճիշտ շարահյուսության համար:

      if (time1 time2) {System.out.println («ամսաթիվը 1-ից շուտ է ամսաթիվը 2»); // տպել, քանի որ time1 time2} else {System.out.println ("date1- ը ավելի ուշ է կամ հավասար է date2- ին"); }

  4. Կատարեք «ավելի մեծ» համեմատություն: Օգտագործեք «ավելի մեծ» խորհրդանիշը (>) այս երկու ամբողջ թվերը համեմատելու համար: Քանի որ time1- ն ավելի մեծ է, քան time2- ը, առաջին հաղորդագրությունը տպվում է էկրանին: Ուրիշ հայտարարությունը ներառված է ճիշտ շարահյուսության համար:

      if (time2> time1) {System.out.println («ամսաթիվը 2 գալիս է ամսաթվից հետո 1»); // տպել, քանի որ time2> time1} else {System.out.println ("ամսաթիվը 2-ը ավելի վաղ է կամ հավասար է ամսաթվին 1"); }

  5. Կատարեք «հավասար» համեմատություն: Օգտագործեք խորհրդանիշը (==) այս երկու ամբողջ թվերը համեմատելու համար: Քանի որ ժամանակը 1 հավասար է ժամանակին 3, առաջին հաղորդագրությունը պետք է տպվի: Եթե ​​ծրագիրը հասնում է else հայտարարությանը, դա նշանակում է, որ ժամանակները նույնը չեն:

      if (time1 == time2) {System.out.println ("Ամսաթվերը հավասար են"); } else {System.out.println ("Ամսաթվերը հավասար չեն"); // տպել, քանի որ ժամանակ 1! = ժամանակ 2}