C:
การรับวันที่ปัจจุบัน
วิธีการ:
ในภาษา C, ไฟล์ header <time.h>
ให้ฟังก์ชันและประเภทที่จำเป็นในการทำงานกับวันที่และเวลา time()
ฟังก์ชันนี้ช่วยเรียกเวลาปัจจุบัน, ในขณะที่ localtime()
แปลงเวลานี้ไปเป็นเขตเวลาท้องถิ่น เพื่อแสดงวันที่, เราใช้ strftime()
เพื่อจัดรูปแบบมันเป็นสตริง
นี่คือตัวอย่างพื้นฐาน:
#include <stdio.h>
#include <time.h>
int main() {
char buffer[80];
time_t rawtime;
struct tm *timeinfo;
// รับเวลาปัจจุบัน
time(&rawtime);
// แปลงเป็นเวลาท้องถิ่น
timeinfo = localtime(&rawtime);
// จัดรูปแบบวันที่และพิมพ์ออกมา
strftime(buffer, 80, "วันนี้คือ %Y-%m-%d", timeinfo);
printf("%s\n", buffer);
return 0;
}
ตัวอย่างผลลัพธ์อาจมีลักษณะดังนี้:
วันนี้คือ 2023-04-12
ลงลึกยิ่งขึ้น
การจัดการเวลาในภาษา C, โดยการใช้งาน <time.h>
, เรียกได้ว่าคืนสู่ยุคแรกๆ ของภาษาและระบบ UNIX มันสร้างขึ้นรอบประเภทข้อมูล time_t
ซึ่งแทนเวลาปัจจุบันเป็นจำนวนวินาทีนับตั้งแต่ Unix Epoch (1 มกราคม 1970) แม้ว่าสิ่งนี้จะมีประสิทธิภาพและเข้ากันได้อย่างกว้างขวาง, แต่ก็หมายความว่าฟังก์ชันเวลาของไลบรารีมาตรฐาน C ถูกจำกัดโดยช่วงและความละเอียดของ time_t
แอปพลิเคชันสมัยใหม่, โดยเฉพาะอย่างยิ่งที่ต้องการเวลาแสตมป์ความละเอียดสูงหรือจัดการกับวันที่ไกลเข้ามาหรือผ่านไปไกล, อาจพบว่าข้อจำกัดเหล่านี้ท้าทาย ตัวอย่างเช่น, ปัญหาปี 2038 เป็นตัวอย่างที่มีชื่อเสียงซึ่งระบบที่ใช้ time_t
32 บิตจะล้น
สำหรับการจัดการเวลาและวันที่ที่ซับซ้อนยิ่งขึ้น, โปรแกรมเมอร์หลายคนหันไปใช้ไลบรารีภายนอกหรือความสามารถที่ระบบปฏิบัติการให้มา ในภาษา C++, ตัวอย่างเช่น, ไลบรารี <chrono>
ให้ความสามารถในการจัดการเวลาอย่างแม่นยำและหลากหลายมากขึ้น
ทั้งหมดนี้แม้ว่าจะมีข้อจำกัด, ความเรียบง่ายและความเป็นที่นิยมของฟังก์ชันเวลาของภาษา C ทำให้มันเหมาะสมอย่างยิ่งสำหรับแอปพลิเคชันมากมาย การเข้าใจเครื่องมือเหล่านี้เป็นสิ่งพื้นฐานสำหรับโปรแกรมเมอร์ภาษา C, โดยเสนอการผสมผสานระหว่างบริบทการเขียนโปรแกรมแบบประวัติศาสตร์และประโยชน์ในการใช้งานประจำวัน