Tải về bản PDF Tải về bản PDF

Có nhiều cách để so sánh ngày (date) trong Java. Về bản chất, ngày đại diện cho một thời điểm (dài) và được viết dưới dạng số phần nghìn giây đã trôi qua kể từ ngày 1/1/1970. Trong Java, Date là một đối tượng với nhiều phương thức so sánh. Bất kỳ phương thức nào so sánh hai ngày với nhau về bản chất chính là so sánh thời gian của ngày.

Phương pháp 1
Phương pháp 1 của 4:

Bằng phương thức compareTo

  1. 1
    Sử dụng phương thức compareTo. Ngày là kế thừa có thể so sánh của <Date> và vì thế hai ngày có thể được so sánh trực tiếp bằng phương thức compareTo. Nếu các ngày này có cùng thời điểm thì phương thức sẽ trả về 0. Nếu ngày được so sánh có trước ngày còn lại thì giá trị nhỏ hơn 0 sẽ được trả về. Nếu ngày được so sánh có sau ngày còn lại, giá trị trả về sẽ lớn hơn 0. Nếu hai ngày bằng nhau, giá trị 0 sẽ được trả về. [1]
  2. 2
    Tạo đối tượng date. Bạn sẽ cần tạo từng đối tượng date trước khi bắt đầu so sánh chúng. Một trong những cách để thực hiện là sử dụng lớp SimpleDateFormat. Lớp này cho phép nhập giá trị ngày vào đối tượng date một cách dễ dàng.
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //Để khai báo những giá trị mới trong đối tượng date mới, hãy sử dụng cùng định dạng khi tạo ngày.
      Date date1 = sdf.parse("1995-02-23"); //date1 là 23/2/1995 
      Date date2 = sdf.parse("2001-10-31"); //date2 là 31/10/2001
      Date date3 = sdf.parse("1995-02-23"); //date3 là 23/2/1995
      
  3. 3
    So sánh những đối tượng ngày. Mã dưới đây sẽ cho bạn thấy từng trường hợp: ít hơn, bằng và nhiều hơn.
      date1.compareTo(date2); //date1 < date2, trả về giá trị nhỏ hơn 0 
      date2.compareTo(date1); //date2 > date1, trả về giá trị lớn hơn 0
      date1.compareTo(date3); //date1 = date3, hiển thị giá trị 0
      
    Quảng cáo
Phương pháp 2
Phương pháp 2 của 4:

Bằng phương thức equals, after và before

  1. 1
    Sử dụng phương thức equals, after và before. Bạn có thể so sánh ngày bằng phương thức equals, after và before. Nếu hai ngày có cùng thời điểm, phương thức equals sẽ trả về giá trị true. Những ví dụ bên dưới sẽ sử dụng ngày đã tạo từ phương thức compareTo trước đó. [2]
  2. 2
    So sánh bằng phương thức before. Mã này có hai trường hợp: true và false. Nếu date1 có trước date2, before sẽ trả về giá trị true. Còn nếu không, before sẽ trả về là false.
      System.out.print(date1.before(date2)); //trả về giá trị true
      System.out.print(date2.before(date2)); //trả về giá trị false
      
  3. 3
    So sánh bằng phương thức after. Mã này có hai trường hợp: true và false. Nếu date2 có sau date1, after sẽ trả về giá trị true. Còn nếu không thì after sẽ hiển thị giá trị false.
      System.out.print(date2.after(date1));//trả về giá trị true
      System.out.print(date1.after(date2));//trả về giá trị false
      
  4. 4
    So sánh bằng phương thức equals. Mã này có hai trường hợp: true và false. Nếu hai ngày này cùng thời điểm, equals sẽ trả về giá trị true. Còn nếu không thì equals sẽ phản hồi giá trị false.
      System.out.print(date1.equals(date3));//trả về giá trị true
      System.out.print(date1.equals(date2));//trả về giá trị false
      
    Quảng cáo
Phương pháp 3
Phương pháp 3 của 4:

Bằng lớp calendar

  1. 1
    Sử dụng lịch (calendar). Lớp calendar cũng có phương thức compareTo, equals, after và before, chúng hoạt động tương tự như lớp date được mô tả ở trên. Vì vậy, nếu thông tin ngày nằm trong lịch thì bạn không cần trích xuất ngày chỉ để so sánh.[3]
  2. 2
    Tạo trường hợp trong Calendar. Để sử dụng những phương thức trong lịch, bạn sẽ cần một số trường hợp Calendar. May mắn là bạn chỉ cần lấy thời gian từ những trường hợp Date được tạo sẵn.
      Calendar cal1 = Calendar.getInstance(); //biểu thị là cal1
      Calendar cal2 = Calendar.getInstance(); //biểu thị là cal2
      Calendar cal3 = Calendar.getInstance(); //biểu thị là cal3
      cal1.setTime(date1); //áp dụng ngày vào cal1
      cal2.setTime(date2);
      cal3.setTime(date3);
      
  3. 3
    So sánh cal1 và cal2 bằng phương thức before. Mã bên dưới sẽ trả về giá trị true vì cal1 có trước cal2.
      System.out.print(cal1.before(cal2)); //trả về giá trị true
      
  4. 4
    So sánh cal1 và cal2 bằng phương thức after. Mã bên dưới sẽ trả về giá trị false vì cal1 có trước cal2.
      System.out.print(cal1.after(cal2)); //trả về giá trị false
      
  5. 5
    So sánh cal1 và cal2 bằng phương thức equals. Mã bên dưới sẽ hiển thị ví dụ của cả hai trường hợp true và false. Điều kiện còn tùy vào trường hợp lịch được so sánh. Mã này sẽ trả về giá trị "true", rồi đến "false" ở dòng tiếp theo.
      System.out.println(cal1.equals(cal3)); //trả về giá trị true: cal1 == cal3
      System.out.print(cal1.equals(cal2)); //trả về giá trị false: cal1 != cal2
      
    Quảng cáo
Phương pháp 4
Phương pháp 4 của 4:

Bằng phương thức getTime

  1. 1
    Sử dụng phương thức getTime. Phương thức này cũng có thể so sánh trực tiếp thời điểm của hai ngày, tuy nhiên những phương pháp bên trên dễ đọc và được ưa chuộng hơn. Đây là phép so sánh giữa hai loại dữ liệu nguyên thủy, vì thế có thể trả về kết quả dấu "<", ">" và "==".
  2. 2
    Tạo đối tượng long time. Trước khi tiến hành so sánh ngày, bạn cần tạo số nguyên dài kiểu long lấy dữ liệu từ những đối tượng Date đã tạo trước đó. May mắn là phương thức getTime() sẽ thực hiện gần như toàn bộ thao tác cho bạn.
      long time1 = getTime(date1); //biểu thị time1 nguyên thủy từ date1
      long time2 = getTime(date2); //biểu thị time2 nguyên thủy từ date2
      
  3. 3
    Thực hiện phép so sánh bé hơn. Sử dụng dấu bé hơn (<) để so sánh hai giá trị số nguyên vừa rồi. Bởi vì time1 có trước time 2 nên kết quả đầu tiên sẽ hiển thị. Statement còn lại sẽ được bao gồm cho cú pháp thích hợp.
      if(time1 < time2){
      System.out.println("date1 is before date2"); //kết quả này sẽ hiển thị bởi vì time1 <time2
      }
      else{
      System.out.println("date1 is not before date2");
      }
      
  4. 4
    Áp dụng phép so sánh lớn hơn. Sử dụng dấu lớn hơn (>) để so sánh hai giá trị số nguyên trên. Bởi vì time1 lớn hơn time 2 nên kết quả đầu tiên sẽ được trả về. Statement còn lại sẽ được bao gồm cho cú pháp thích hợp.
      if(time2 > time1){
      System.out.println("date2 is after date1"); //kết quả này sẽ hiển thị vì time2 > time1 
      }
      else{
      System.out.println("date2 is not after date1");
      }
      
  5. 5
    Thực hiện phép so sánh bằng. Sử dụng dấu kiểm tra đẳng thức (==) để so sánh xem hai giá trị số nguyên trên có bằng nhau hay không. Bởi vì time1 bằng với time3 nên kết quả đầu tiên sẽ được trả về. Nếu chương trình nhận về statement khác thì nghĩa là các thời gian không bằng nhau.[4]
      if(time1 == time2){
      System.out.println("the dates are equal");
      }
      else{
      System.out.println("the dates are not equal"); //kết quả này sẽ hiển thị vì time1 != time2
      }
      
    Quảng cáo

Bài viết wikiHow có liên quan

Chèn ảnh vào Excel sao cho tự động vừa với các ôChèn ảnh vào Excel sao cho tự động vừa với các ô
Căn giữa văn bản trên HTMLCăn giữa văn bản trên HTML
Tắt McAfeeTắt McAfee
Khởi chạy tập tin Python bằng Windows Command PromptKhởi chạy tập tin Python bằng Windows Command Prompt
Tạo ra áo trong RobloxTạo ra áo trong Roblox
Chỉnh kích thước artboard trong Adobe IllustratorChỉnh kích thước artboard trong Adobe Illustrator
Xóa bỏ phông nền trong Adobe IllustratorXóa bỏ phông nền trong Adobe Illustrator
Chèn chữ trong Adobe Premiere
Trải nghiệm Bumble Premium miễn phíTrải nghiệm Bumble Premium miễn phí
Sao chép bảng từ PDF sang ExcelSao chép bảng từ PDF sang Excel
Chèn ảnh trong InDesignChèn ảnh trong InDesign
Lồng một ảnh vào trong ảnh khác trên PhotoshopLồng một ảnh vào trong ảnh khác trên Photoshop
Quảng cáo

Về bài wikiHow này

wikiHow là một trang "wiki", nghĩa là nhiều bài viết ở đây là nội dung của nhiều tác giả cùng viết nên. Để tạo ra bài viết này, các tác giả tình nguyện đã thực hiện chỉnh sửa và cải thiện bài viết theo thời gian. Bài viết này đã được xem 20.960 lần.
Chuyên mục: Phần mềm
Trang này đã được đọc 20.960 lần.

Bài viết này đã giúp ích cho bạn?

Quảng cáo