การคำนวณวันที่ในอนาคตหรืออดีต

Kotlin:
การคำนวณวันที่ในอนาคตหรืออดีต

วิธีการ:

Kotlin จัดการวันที่และเวลาด้วยไลบรารี java.time ในการเพิ่มหรือลบวัน, ใช้ plusDays() หรือ minusDays() นี่คือหลักการ:

import java.time.LocalDate

fun main() {
    val today = LocalDate.now()
    val tenDaysLater = today.plusDays(10)
    val tenDaysBefore = today.minusDays(10)
    
    println("วันนี้: $today")
    println("สิบวันจากนี้: $tenDaysLater")
    println("สิบวันที่แล้ว: $tenDaysBefore")
}

ผลลัพธ์ตัวอย่าง:

วันนี้: 2023-03-15
สิบวันจากนี้: 2023-03-25
สิบวันที่แล้ว: 2023-03-05

นอกเหนือจากวัน, คุณยังสามารถเล่นกับเดือนและปี (plusMonths(), minusMonths(), plusYears(), minusYears()) ได้อีกด้วย

ทำลึก

การคำนวณวันที่ไม่ใช่เรื่องใหม่ ตั้งแต่ Java 8, แพ็กเกจ java.time ได้กลายเป็นการไปสู่การคำนวณเวลาวันที่—ดีกว่า Calendar หรือ Date เก่า ๆ ที่ไม่คล่องตัวและไม่ปลอดภัยกับ threads

java.time ใช้วัตถุที่ไม่สามารถเปลี่ยนแปลงได้, ดังนั้นคุณจึงหลีกเลี่ยงข้อผิดพลาดที่น่ารังเกียจจากการแก้ไขวันที่ของคุณโดยไม่ตั้งใจ วัตถุเช่น LocalDate, LocalTime, LocalDateTime, และ ZonedDateTime ช่วยให้คุณสามารถแสดงแง่มุมต่าง ๆ ของเวลาได้อย่างแม่นยำ

ทางเลือก? แน่นอน ก่อน java.time, Joda-Time เป็นอาวุธที่เลือกใช้ ระบบเก่าบางระบบยังคงใช้มันอยู่ และในโดเมน Android, ไลบรารี ThreeTenABP นำคุณสมบัติของ java.time กลับมาใช้ใหม่เพื่อความเข้ากันได้กับ Java 6 & 7

API java.time ยังถูกออกแบบให้ตระหนักถึงโซนเวลา, ด้วยคลาสเช่น ZonedDateTime ดังนั้นเมื่อคุณกำลังย้ายวันที่ไปรอบ ๆ, คุณสามารถเคารพต่อความเป็นมาของการหมุนของโลก

ดูเพิ่มเติม

  • เอกสารอย่างเป็นทางการของ java.time: Java SE Date Time
  • สำหรับนักพัฒนา Android, รายละเอียดไลบรารี ThreeTenABP: ThreeTenABP บน GitHub
  • คู่มือลึกล้ำ, หากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับวันและเวลา: Date and Time in Java