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