เปรียบเทียบสองวันที่

Rust:
เปรียบเทียบสองวันที่

การทำ:

Rust ใช้ chrono เพื่อจัดการกับวันที่ได้ง่ายหน่อย ก่อนอื่น cargo.toml ต้องการ chrono = "0.4" จากนั้นคุณสามารถเปรียบเทียบวันที่ได้ดังนี้:

extern crate chrono;
use chrono::{DateTime, Utc};

fn main() {
    let date1: DateTime<Utc> = Utc::now();
    let date2: DateTime<Utc> = Utc::now(); // เปลี่ยนสิ่งนี้เพื่อผลลัพธ์ที่แตกต่าง

    if date1 > date2 {
        println!("วันที่ 1 อยู่หลังจากวันที่ 2");
    } else if date1 < date2 {
        println!("วันที่ 1 อยู่ก่อนวันที่ 2");
    } else {
        println!("วันที่ 1 เท่ากับวันที่ 2");
    }
}

ผลลัพธ์ตัวอย่างเมื่อ date1 อยู่หลัง:

วันที่ 1 อยู่หลังจากวันที่ 2

การศึกษาลงลึก

ในช่วงต้นของ Rust (2010s), การเปรียบเทียบวันที่เป็นเรื่องที่ยุ่งยากกว่า—ไม่มี chrono crate มา chrono และทำให้สิ่งต่างๆง่ายขึ้นด้วยประเภทเช่น DateTime ก่อน chrono, เราต้องจัดการกับเวลาด้วยตนเอง ซึ่งมีโอกาสเกิดข้อผิดพลาดได้ง่าย

ทำไม chrono? มันทำให้ความซับซ้อนเช่นเขตเวลาและปีอธิกสุรทิน, ทำให้การเปรียบเทียบวันที่เชื่อถือได้ โดยปราศจากมัน, คุณจะต้องจัดการกับเวลา Unix ที่ยุ่งยากและอ่านยาก

มีทางเลือกอื่นสำหรับ chrono เช่น, กระบอก time, แต่ chrono ได้รับความนิยมในการใช้งานเพราะความเรียบง่ายและคุณสมบัติต่างๆ

ดูเพิ่มเติม

  • เอกสารกระบอก chrono: docs.rs/chrono
  • เอกสารความคิดเห็นการเรียกใช้วันที่และเวลาอย่างเป็นทางการของ Rust: doc.rust-lang.org/std/time
  • การเปรียบเทียบระหว่างกระบอก chrono และ time: users.rust-lang.org