Rust:
การคำนวณวันที่ในอนาคตหรืออดีต
วิธีการ:
Rust มี chrono
crate สำหรับทุกความต้องการเกี่ยวกับวันที่และเวลา นี่คือวิธีการเพิ่มหรือลบวันที่:
use chrono::{DateTime, Duration, Utc};
fn main() {
let now = Utc::now();
println!("เวลา UTC ปัจจุบัน: {}", now);
let two_weeks = Duration::weeks(2);
let future_date = now + two_weeks;
println!("UTC ในสองสัปดาห์: {}", future_date);
let thirty_days_ago = Duration::days(-30);
let past_date = now + thirty_days_ago;
println!("UTC 30 วันที่แล้ว: {}", past_date);
}
ตัวอย่างผลลัพธ์:
เวลา UTC ปัจจุบัน: 2023-04-01T12:00:00Z
UTC ในสองสัปดาห์: 2023-04-15T12:00:00Z
UTC 30 วันที่แล้ว: 2023-03-02T12:00:00Z
ศึกษาเพิ่มเติม
โดยทั่วไปการจัดการวันที่และเวลาเป็นเรื่องที่ยาก ระบบและภาษาโปรแกรมต่างๆ จัดการกับมันในหลายวิธี Rust’s standard library ให้การทำงานพื้นฐาน แต่ chrono
crate เป็นตัวเลือกหลัก
มีทางเลือกอื่นหรือไม่? แน่นอนคุณสามารถคำนวณวันที่ด้วยตนเองได้โดยการแปลงทุกอย่างเป็นเวลาสแตมป์ จัดการกับตัวเลขและแปลงกลับ หรือคุณอาจใช้ไลบรารีเฉพาะเวลาในภาษาอื่นๆ — Python มี datetime
, JavaScript มี Date
เป็นต้น
chrono
crate ใน Rust ให้คุณประเภทที่ตระหนักถึงเขตเวลาเช่น DateTime
, และช่วงเวลาตามที่เห็นข้างต้น มันจัดการกับสิ่งที่ยุ่งยากเช่นปีอธิกสุรทินและการปรับเวลาฤดูร้อนให้คุณไม่ต้องทำ มันยังทำการแยกวันที่และรูปแบบการแสดงผลวันที่ ทำให้เป็นโซลูชันที่ครอบคลุม
ดูเพิ่มเติม
chrono
crate: https://crates.io/crates/chrono- เอกสารเวลาของ Rust: https://doc.rust-lang.org/std/time/index.html
- บทความเกี่ยวกับวันที่และเวลาในหนังสือ “ภาษาโปรแกรม Rust”: https://doc.rust-lang.org/book/ch10-02-traits.html (ค้นหาส่วนที่เกี่ยวข้องกับ DateTime)