Java- ում երկու ամսաթվերը համեմատելու 4 եղանակ

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

Java- ում երկու ամսաթվերը համեմատելու 4 եղանակ
Java- ում երկու ամսաթվերը համեմատելու 4 եղանակ

Video: Java- ում երկու ամսաթվերը համեմատելու 4 եղանակ

Video: Java- ում երկու ամսաթվերը համեմատելու 4 եղանակ
Video: Making Gears in Sketchup and Inkscape 2024, Ապրիլ
Anonim

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

Քայլեր

Մեթոդ 1 -ը 4 -ից ՝ համեմատության կիրառումը

4301351 1
4301351 1

Քայլ 1. Օգտագործեք compareTo:

Ամսաթիվը իրականացնում է Համեմատելի, ուստի երկու ամսաթվերը կարող են ուղղակիորեն համեմատվել համեմատության մեթոդի հետ: Եթե ամսաթվերը ժամանակի նույն կետի համար են, ապա մեթոդը վերադարձնում է զրո: Եթե համեմատվող ամսաթիվը ամսաթվի փաստարկից առաջ է, ապա զրոից փոքր արժեք է վերադարձվում: Եթե համեմատվող ամսաթիվը ամսաթվի փաստարկից հետո է, ապա զրոից մեծ արժեքը հետ է վերադարձվում: Եթե ամսաթվերը հավասար են, ապա 0 արժեքը վերադարձվում է:

4301351 2
4301351 2

Քայլ 2. Ստեղծեք ամսաթվի օբյեկտներ:

Նախքան դրանք համեմատելը սկսելը, ձեզ հարկավոր կլինի ստեղծել ամսաթվի յուրաքանչյուր օբյեկտ: Դա անելու եղանակներից մեկը SimpleDateFormat դասի օգտագործումն է: Այն թույլ է տալիս հեշտությամբ մուտքագրել ամսաթվի արժեքները ամսաթվի օբյեկտների մեջ:

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

4301351 3
4301351 3

Քայլ 3. Համեմատեք ամսաթվի առարկաները:

Ստորև բերված ծածկագիրը ցույց կտա ձեզ յուրաքանչյուր դեպք `փոքրից, հավասարից և մեծից:

    date1.compareTo (date2); // date1 <date2, վերադարձնում է 0 -ից պակաս date2.compareTo (date1); // date2> date1, վերադարձնում է ավելի քան 0 date1.compareTo (date3); // date1 = date3, այնպես որ 0 -ը կտպվի մխիթարելիս

Մեթոդ 2 4 -ից. Հավասարների օգտագործումը, հետո և առաջ

4301351 4
4301351 4

Քայլ 1. Օգտագործեք հավասարները ՝ հետո և առաջ:

Ամսաթվերը կարելի է համեմատել հավասարների հետ `մեթոդներից հետո և դրանից առաջ: Եթե երկու ամսաթվերը նույն ժամանակի համար են, ապա հավասարման մեթոդը կվերադառնա ճշմարիտ: Օրինակները կօգտագործեն համեմատած մեթոդի նախկինում ստեղծված ամսաթվերը:

4301351 5
4301351 5

Քայլ 2. Համեմատեք ՝ օգտագործելով նախորդ մեթոդը:

Ստորև բերված ծածկագիրը ցույց է տալիս իրական և կեղծ դեպք: Եթե date1- ը date2- ից առաջ է, ապա true վերադարձը: Եթե դա այդպես չէ, մինչ վերադարձը կեղծ է:

    System.out.print (date1.before (date2)); // տպում է իսկական System.out.print (date2.before (date2)); // տպում է կեղծ

4301351 6
4301351 6

Քայլ 3. Համեմատեք ՝ օգտագործելով after մեթոդ:

Ստորև բերված ծածկագիրը ցույց է տալիս իրական և կեղծ դեպք: Եթե date2- ը date1- ից հետո է, ապա true վերադարձնելուց հետո: Եթե դա այդպես չէ, վերադարձից հետո կեղծ է:

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

4301351 7
4301351 7

Քայլ 4. Համեմատեք ՝ օգտագործելով հավասարումների մեթոդը:

Ստորև բերված ծածկագիրը ցույց է տալիս իրական և կեղծ դեպք: Եթե ամսաթվերը հավասար են, ապա հավասարները վերադարձնում են ճշմարիտ: Եթե դրանք չլինեն, ապա հավասարները վերադարձնում են կեղծ:

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

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

4301351 8
4301351 8

Քայլ 1. Օգտագործեք օրացույցը:

Օրացույցային դասը ունի նաև համեմատման մեթոդներ, որոնք հավասար են, հետո և առաջ, որոնք աշխատում են նույն կերպ, ինչպես վերը նկարագրված է ամսաթվերի դասի համար: Այսպիսով, եթե ամսաթվի մասին տեղեկությունները պահվում են օրացույցում, ապա կարիք չկա ամսաթիվը հանել միայն համեմատություն կատարելու համար:

4301351 9
4301351 9

Քայլ 2. Ստեղծեք Օրացույցի օրինակներ:

Օրացույցի մեթոդներից օգտվելու համար ձեզ հարկավոր են Օրացույցի մի քանի օրինակ: Բարեբախտաբար, դուք կարող եք պարզապես վերցնել ժամանակներն արդեն ստեղծված Ամսաթվի դեպքերից:

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

4301351 10
4301351 10

Քայլ 3. Համեմատեք cal1- ի և cal2- ի օգտագործումը նախկինում:

Ստորև բերված ծածկագիրը պետք է տպվի ճշմարիտ, քանի որ cal1- ը Cal2- ից առաջ է:

    System.out.print (cal1. առաջ (cal2)); // կտպվի ճշմարիտ

4301351 11
4301351 11

Քայլ 4. Համեմատեք cal1- ի և cal2- ի օգտագործումը after- ից հետո:

Ստորև բերված ծածկագիրը պետք է տպվի կեղծ, քանի որ cal1- ը cal2- ից առաջ է:

    System.out.print (cal1.after (cal2)); // տպում է կեղծ

4301351 12
4301351 12

Քայլ 5. Համեմատեք cal1- ը և cal2- ը ՝ օգտագործելով հավասարներ:

Ստորև բերված ծածկագիրը ցույց կտա ինչպես իրական, այնպես էլ կեղծ գործի օրինակ: Վիճակը կախված է օրացուցային օրինակների համեմատությունից: Կոդը պետք է տպի «ճշմարիտ», այնուհետև «կեղծ» հաջորդ տողում:

    System.out.println (cal1.equals (cal3)); // prints true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // տպում է false: cal1! = cal2

Մեթոդ 4 -ից 4 -ը ՝ օգտագործելով getTime

4301351 13
4301351 13

Քայլ 1. Օգտագործեք getTime- ը:

Հնարավոր է նաև ուղղակիորեն համեմատել երկու ամսաթվերի ժամանակային կետը, չնայած որ նախորդ մոտեցումներից որևէ մեկը, ամենայն հավանականությամբ, կլինի ավելի ընթեռնելի և այդքան նախընտրելի: Սա կլինի երկու պարզունակ տվյալների տիպի համեմատություն, այնպես որ դա կարելի է անել «» և «==»:

4301351 14
4301351 14

Քայլ 2. Ստեղծեք երկարաժամկետ օբյեկտներ:

Մինչև ամսաթվերը համեմատելը, դուք պետք է ստեղծեք երկար թվեր ՝ նախկինում ստեղծված Date օբյեկտների տվյալների հետ: Բարեբախտաբար, getTime () մեթոդը աշխատանքի մեծ մասը կանի ձեզ համար:

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

4301351 15
4301351 15

Քայլ 3. Կատարեք համեմատությունից ավելի քիչ:

Այս երկու ամբողջ արժեքները համեմատելու համար օգտագործեք ավելի քիչ խորհրդանիշ (<): Քանի որ time1- ը 2 -ից փոքր է, առաջին հաղորդագրությունը պետք է տպվի: Մնացած հայտարարությունը ներառված է պատշաճ շարահյուսության համար:

    if (time1 <time2) {System.out.println ("date1 is before date2"); // տպվելու է ժամանակից 1 <time2} else {System.out.println ("date1 is not before date2"); }

4301351 16
4301351 16

Քայլ 4. Կատարեք ավելի մեծ համեմատություն:

Այս երկու ամբողջ արժեքները համեմատելու համար օգտագործեք մեծից մեծ նշանը (>): Քանի որ time1- ը 2 -ից մեծ է, առաջին հաղորդագրությունը պետք է տպվի: Մնացած հայտարարությունը ներառված է պատշաճ շարահյուսության համար:

    if (time2> time1) {System.out.println ("date2 is after date1"); // տպվելու է time2> time1} else {System.out.println ("date2 is not after date1"); }

4301351 17
4301351 17

Քայլ 5. Կատարեք հավասար համեմատություն:

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

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

Խորհուրդ ենք տալիս: