Skip to content
เข้าสู่ระบบ

Time Constants

Constants สำหรับ time durations และ timestamps ใน Rust มี Duration constants, UNIX_EPOCH reference point และ patterns สำหรับ timeout handling ที่เป็นพื้นฐานสำคัญของ systems programming

Duration struct มี associated constants สำหรับ common values โดย ZERO แทน 0 nanoseconds และ MAX แทนค่าสูงสุดที่เป็นไปได้ (~584 years)

ConstantValueDescription
Duration::ZERO0 nanosecondsDuration เป็นศูนย์
Duration::MAX~584 yearsค่าสูงสุดที่ Duration เก็บได้
Duration::SECOND1 second(nightly) 1 วินาที
Duration::MILLISECOND1 ms(nightly) 1 มิลลิวินาที
Duration::MICROSECOND1 μs(nightly) 1 ไมโครวินาที
Duration::NANOSECOND1 ns(nightly) 1 นาโนวินาที
use std::time::Duration;
fn main() {
// Predefined constants
println!("=== Duration Constants ===");
println!("ZERO: {:?}", Duration::ZERO);
println!("MAX: {:?}", Duration::MAX);
// Compare ZERO
let empty = Duration::from_secs(0);
println!("\nZERO == from_secs(0): {}", Duration::ZERO == empty);
// MAX is about 584 years
let max_secs = Duration::MAX.as_secs();
let years = max_secs / (365 * 24 * 60 * 60);
println!("MAX is approximately {} years", years);
// Create common durations using const functions
println!("\n=== Common Durations ===");
println!("1 second: {:?}", Duration::from_secs(1));
println!("1 millisecond: {:?}", Duration::from_millis(1));
println!("1 microsecond: {:?}", Duration::from_micros(1));
println!("1 nanosecond: {:?}", Duration::from_nanos(1));
// Useful const patterns - can be used in const contexts
const ONE_SECOND: Duration = Duration::from_secs(1);
const TEN_MILLIS: Duration = Duration::from_millis(10);
const TIMEOUT: Duration = Duration::from_secs(30);
const MINUTE: Duration = Duration::from_secs(60);
const HOUR: Duration = Duration::from_secs(3600);
println!("\n=== Const Durations ===");
println!("ONE_SECOND: {:?}", ONE_SECOND);
println!("TEN_MILLIS: {:?}", TEN_MILLIS);
println!("TIMEOUT: {:?}", TIMEOUT);
println!("MINUTE: {:?}", MINUTE);
println!("HOUR: {:?}", HOUR);
// Internal representation - seconds + nanoseconds
let d = Duration::new(5, 500_000_000); // 5.5 seconds
println!("\n=== Components ===");
println!("Duration::new(5, 500_000_000):");
println!(" Display: {:?}", d);
println!(" as_secs: {}", d.as_secs()); // Full seconds only
println!(" subsec_nanos: {}", d.subsec_nanos()); // Fractional part
println!(" as_secs_f64: {}", d.as_secs_f64()); // As float
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด