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