ใน Java เปรียบเทียบวันที่สองวันได้ด้วยเมธอด compareTo() ของอินเตอร์เฟซ Comparable คืนค่า:
- 0 - วันที่เท่ากัน
- > 0 - date1 หลัง date2
- < 0 - date1 ก่อน date2
ไวยากรณ์
int compareTo(T o)
ตัวอย่าง: เปรียบเทียบสองวันที่
import java.text.*;
import java.util.Date;
public class CompareTwoDatesTest {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse("2019-04-15");
Date d2 = sdf.parse("2019-08-10");
System.out.println("Date 1: " + sdf.format(d1));
System.out.println("Date 2: " + sdf.format(d2));
if (d1.compareTo(d2) > 0) {
System.out.println("Date 1 occurs after Date 2");
} else if (d1.compareTo(d2) < 0) {
System.out.println("Date 1 occurs before Date 2");
} else {
System.out.println("Both dates are equal");
}
}
}
ผลลัพธ์
Date 1: 2019-04-15
Date 2: 2019-08-10
Date 1 occurs before Date 2
แนะนำ (Java 8+): ใช้ java.time.LocalDate และ isBefore(), isAfter(), isEqual() แทน Date/Calendar เดิม
LocalDate d1 = LocalDate.of(2019, 4, 15);
LocalDate d2 = LocalDate.of(2019, 8, 10);
System.out.println(d1.isBefore(d2)); // true