ჯავაში ორი თარიღის შედარების 4 გზა

Სარჩევი:

ჯავაში ორი თარიღის შედარების 4 გზა
ჯავაში ორი თარიღის შედარების 4 გზა

ვიდეო: ჯავაში ორი თარიღის შედარების 4 გზა

ვიდეო: ჯავაში ორი თარიღის შედარების 4 გზა
ვიდეო: Inkscape: How to Change Default Settings 2024, აპრილი
Anonim

Java– ს თარიღების შედარების სხვადასხვა გზა არსებობს. შინაგანად, თარიღი წარმოდგენილია როგორც დროის (გრძელი) მომენტი - მილიწამების რაოდენობა, რომელიც გავიდა 1970 წლის 1 იანვრიდან. ჯავაში თარიღი არის ობიექტი, რაც იმას ნიშნავს, რომ იგი მოიცავს შედარების მრავალ მეთოდს. ორი თარიღის შედარების ნებისმიერი მეთოდი არსებითად შეადარებს თარიღების დროს.

ნაბიჯები

მეთოდი 1 -დან 4 -დან: შედარებითTo- ს გამოყენება

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"); // თარიღი 1 არის 1995 წლის 23 თებერვალი თარიღი თარიღი 2 = sdf.parse ("2001-10-31"); // თარიღი 2 არის 2001 წლის 31 ოქტომბერი თარიღი თარიღი 3 = sdf.parse ("1995-02-23"); // თარიღი 3 არის 1995 წლის 23 თებერვალი

4301351 3
4301351 3

ნაბიჯი 3. შეადარეთ თარიღის ობიექტები

ქვემოთ მოყვანილი კოდი გაჩვენებთ თითოეულ შემთხვევას - ნაკლები, თანაბარი და უფრო დიდი ვიდრე.

    date1.compareTo (თარიღი 2); // date1 <date2, აბრუნებს 0 -ზე ნაკლებს date2.compareTo (date1); // date2> date1, აბრუნებს 0 -ზე მეტს date1.compareTo (date3); // თარიღი 1 = თარიღი 3, ასე დაბეჭდება 0 კონსოლზე

მეთოდი 2 -დან 4: თანაბარი, შემდეგ და ადრე გამოყენება

4301351 4
4301351 4

ნაბიჯი 1. გამოიყენეთ თანაბარი, შემდეგ და ადრე

თარიღები შეიძლება შევადაროთ ტოლებს, მეთოდების შემდგომ და ადრე. თუ ორი თარიღი ერთსა და იმავე დროს არის, ტოლობის მეთოდი დაბრუნდება ჭეშმარიტი. მაგალითები გამოიყენებს ადრე შექმნილ თარიღებს შედარებითTo მეთოდით.

4301351 5
4301351 5

ნაბიჯი 2. შეადარეთ წინა მეთოდის გამოყენებით

ქვემოთ მოყვანილი კოდი აჩვენებს ჭეშმარიტ და ცრუ შემთხვევას. თუ თარიღი 1 თარიღამდეა 2, მაშინ დაბრუნდება ჭეშმარიტი. თუ ეს ასე არ არის, ადრე დაბრუნდება false.

    System.out.print (date1. ადრე (date2)); // ბეჭდავს ნამდვილ System.out.print (date2. ადრე (date2)); // ბეჭდავს ცრუ

4301351 6
4301351 6

ნაბიჯი 3. შეადარეთ შემდგომი მეთოდის გამოყენებით

ქვემოთ მოყვანილი კოდი აჩვენებს ჭეშმარიტ და მცდარ შემთხვევას. თუ თარიღი 2 არის თარიღის შემდეგ 1, მაშინ დაბრუნდება ჭეშმარიტი. თუ ეს ასე არ არის, დაბრუნების შემდეგ false.

    System.out.print (date2.after (date1)); // ბეჭდავს ნამდვილ System.out.print (date1.after (date2)); // ბეჭდავს false

4301351 7
4301351 7

ნაბიჯი 4. შეადარეთ თანაბარი მეთოდის გამოყენებით

ქვემოთ მოყვანილი კოდი აჩვენებს ჭეშმარიტ და მცდარ შემთხვევას. თუ თარიღები თანაბარია, ტოლი ბრუნდება true. თუ ისინი არ არიან, ტოლია აბრუნებს ცრუ.

    System.out.print (date1.equals (date3)); // ბეჭდავს ნამდვილ System.out.print (date1.equals (date2)); // ბეჭდავს 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 (თარიღი 2); cal3.setTime (თარიღი 3);

4301351 10
4301351 10

ნაბიჯი 3. შეადარეთ cal1 და cal2 ადრე

ქვემოთ მოყვანილი კოდი უნდა იყოს დაბეჭდილი true რადგან cal1 არის cal2- მდე.

    System.out.print (cal1. ადრე (cal2)); // დაიბეჭდება true

4301351 11
4301351 11

ნაბიჯი 4. შეადარეთ cal1 და cal2 გამოყენებით after

ქვემოთ მოყვანილი კოდი უნდა დაბეჭდოს მცდარი, რადგან cal1 არის cal2– მდე.

    System.out.print (cal1. შემდეგ (cal2)); // ბეჭდავს ცრუ

4301351 12
4301351 12

ნაბიჯი 5. შეადარეთ cal1 და cal2 თანაბარი გამოყენებით

ქვემოთ მოყვანილი კოდი აჩვენებს როგორც ჭეშმარიტი, ასევე ყალბი შემთხვევის მაგალითს. მდგომარეობა დამოკიდებულია კალენდარული შემთხვევების შედარებაზე. კოდი უნდა დაბეჭდოს "ჭეშმარიტი", შემდეგ "ცრუ" მომდევნო სტრიქონზე.

    System.out.println (cal1.equals (cal3)); // ბეჭდავს true: cal1 == cal3 System.out.print (cal1.equals (cal2)); // ბეჭდავს ცრუ: cal1! = cal2

მეთოდი 4 -დან 4 -დან: გამოიყენეთ getTime

4301351 13
4301351 13

ნაბიჯი 1. გამოიყენეთ getTime

ასევე შესაძლებელია უშუალოდ შევადაროთ ორი თარიღის დროის წერტილი, თუმცა ნებისმიერი წინა მიდგომა სავარაუდოდ უფრო წაკითხული და სასურველია. ეს იქნება ორი პრიმიტიული მონაცემთა ტიპის შედარება, ასე რომ ეს შეიძლება გაკეთდეს "" და "==".

4301351 14
4301351 14

ნაბიჯი 2. შექმენით დიდი ხნის ობიექტები

სანამ შეადარებთ თარიღებს, თქვენ უნდა შექმნათ გრძელი რიცხვები ადრე შექმნილი თარიღის ობიექტების მონაცემებით. საბედნიეროდ, getTime () მეთოდი შეასრულებს სამუშაოს უმეტესობას თქვენთვის.

    long time1 = getTime (თარიღი 1); // აცხადებს პრიმიტიულ დროს 1 თარიღიდან 1 გრძელი დრო 2 = getTime (თარიღი 2); // აცხადებს პრიმიტიულ დროს 2 თარიღიდან 2

4301351 15
4301351 15

ნაბიჯი 3. გააკეთეთ შედარებით ნაკლები

გამოიყენეთ ნაკლები სიმბოლო (<) ამ ორი მთლიანი მნიშვნელობის შესადარებლად. ვინაიდან დრო 1 ნაკლებია დრო 2 -ზე, პირველი შეტყობინება უნდა დაიბეჭდოს. Else განცხადება შედის შესაბამისი სინტაქსისთვის.

    if (time1 <time2) {System.out.println ("date1 is before date2"); // იბეჭდება დროიდან 1 <დრო 2} სხვა {System.out.println ("თარიღი 1 არ არის თარიღამდე 2"); }

4301351 16
4301351 16

ნაბიჯი 4. გააკეთეთ შედარებაზე მეტი

გამოიყენეთ მეტი ვიდრე სიმბოლო (>) ამ ორი მთლიანი მნიშვნელობის შესადარებლად. ვინაიდან დრო 1 მეტია დრო 2 -ზე, პირველი შეტყობინება უნდა დაიბეჭდოს. Else განცხადება შედის შესაბამისი სინტაქსისთვის.

    if (time2> time1) {System.out.println ("date2 is after date1"); // იბეჭდება დროიდან 2> დრო 1} სხვა {System.out.println ("თარიღი 2 არ არის თარიღის შემდეგ 1"); }

4301351 17
4301351 17

ნაბიჯი 5. გააკეთეთ თანაბარი შედარება

გამოიყენეთ სიმბოლო, რომ შეამოწმოთ თანასწორობა (==) ამ ორი მთლიანი მნიშვნელობის შესადარებლად თანასწორობისთვის. ვინაიდან დრო 1 უდრის დროს 3, პირველი შეტყობინება უნდა დაიბეჭდოს. თუ პროგრამა სხვა განცხადებას მიაღწევს, ეს ნიშნავს, რომ დრო არ არის თანაბარი.

    if (დრო 1 == დრო 2) {System.out.println ("თარიღები თანაბარია"); } else {System.out.println ("თარიღები არ არის თანაბარი"); // იბეჭდება დროიდან 1! = დრო 2}

გირჩევთ: