C – Date Duration Calculator

สืบเนื่องจากมีคนตั้งกระทู้ถามในพันทิป
http://pantip.com/topic/32188324/comment5

ลองแบบนี้ดูครับ หลักการง่ายๆ แปลงทุกอย่างเป็น epoch ให้หมด 555 (ทั้ง startDate และ endDate)
จากนั้นก็ใช้ function difftime() ในการคำนวน ก็จะได้ผลลัพธิ์ แต่ก็ยังเป็นรูปแบบ epoch อยู่นะ
ในที่นี้ผมยกตัวอย่างเป็นการแปลงไปเป็นวันนะ ก็คือเอา sec*min*hour

อ้อลืมบอก dateTime ปลายทางผมใช้เป็นวันเวลาปัจจุบันนะครับ
ถ้าจะให้กำหนดได้ก็ประยุกต์จากโค้ดของวันตั้งต้นได้เลยครับ

เรื่อง time ถ้าขี้เกียจใส่ก็ set default เป็น 0 ไปให้หมดเลยก็ได้ครับ
อีกอย่างในโค้ด ยังไม่ได้ GMT +7 นะครับ

หน้าที่ต่อไปของคุณคือ ไปหาวิธีแปลง Date เป็น Day Month Year เอาเองนะครับ
จริงๆอยากช่วยนะ แต่ขี้เกียจ 555555

ปล. ถ้าผิดพลาดตรงไหนผู้รู้ท่านอื่นๆแนะนำด้วยนะครับ ผมก็ไม่ได้เขียน C มาเกือบ 2 ปีแล้ว
(ไม่นาน แต่ผมขี้ลืม 5555) ตอนแรกลองกับภาษาอื่น ง่ายกว่า C เยอะ – -”

edit : ผมแก้ code ใหม่แล้วนะครับ กำหนดวันตั้งต้นกับวันสิ้นสุดได้แล้ว
บอกใบ้ให้นิดนึง
ลบ หรือ comment ตรงนี้ทิ้ง

resultDays = diff_t / (60 * 60 * 24); // sec min hour

ก็คือไม่ต้องแปลงไปเป็นวัน ค่าวันตั้งต้นและวันสิ้นสุดจะเป็นรูปแบบ epoch
ทีนี้ก็ไปหาวิธีแปลง epoch ไปเป็น วัน/เดือน/ปี ปรกติ
แค่นี้เองครับง่ายๆ :)

C – Date Duration Calculator [ PASTEBIN ]
http://pastebin.com/dUreqXVY

Leave a Reply

Your email address will not be published. Required fields are marked *