ข้ามไปที่เนื้อหาหลัก

ชุดไลบรารี date_time ของ Boost

เนื่องจากตอนนี้กลับมาเขียน C++ เป็นหลัก จึงอยากเขียนหลายๆ อย่างให้อยู่ในรูปของอ็อบเจกต์ด้วย จึงหาไลบรารีมาใช้งาน ที่สนใจตอนนี้คือไลบรารีเรื่องของวันและเวลาจากชุดไลบรารีของ boost ซึ่งชุดไลบรารีของ boost เองหลายชุดได้กลายเป็นแม่แบบมารตฐาน C++11 ด้วย สำหรับตอนนี้สนใจเรื่องเกี่ยบกับเวลา เราอาจจะเลือกใช้ ctime ได้แต่อาจจะอยู่ในรูปปของฟังก์ชันและพอยน์เตอร์ หรือ tm struct แต่การใช้ tm struct เราอาจจะต้องมาจัดการเรืองของช่วงเวลาเอง อาจจะยุ่งยากเล็กน้อย ลองมาดูไลบรารี date_time ของ boost กันดีกว่า
// date_time.cpp
#include <iostream>
#include <boost/date_time/posix_time/posix_time.hpp>

using namespace::std;

int main(){

boost::posix_time::ptime t1 = boost::posix_time::microsec_clock::local_time();

cout<<"time t1: " << boost::posix_time::to_simple_string(t1) <<endl;
sleep(1);

boost::posix_time::ptime t2 = boost::posix_time::microsec_clock::local_time();
cout<<"time t2: " << boost::posix_time::to_simple_string(t2) <<endl;

boost::posix_time::time_duration td = t2-t1;

cout<<endl<<"current time:: "<<t2.time_of_day()<<endl;
cout<<"current sec time:: "<<t2.time_of_day().seconds()<<endl;
cout<<"current min time:: "<<t2.time_of_day().minutes()<<endl;
cout<<"current hours time:: "<<t2.time_of_day().hours()<<endl;

cout<<"diff time: "<<td<<endl;
cout<<"diff time in sec: "<<td.seconds()<<endl;
return 0;
}
นี่เป็นตัวอย่างการใช้ ptime หรือ posix time นั้นเอง เราสามารถสร้างอ็อบเจกต์ของ ptime ได้หลายวิธี แต่ในตัวอย่างใช้วิธีการใช้นาฬิการะบบ หากต้องการเก็บเวลาในระดับ microsec ก็สามารถสร้างได้ดังตัวอย่างคือ boost::posix_time::microsec_clock::local_time(); นอกจากนี้เราสามารถใช้ในหน่วยวินาทีได้เช่นกันโดยใช้ boost::posix_time::second_clock ตามต้องการ ทดลองคอมไพล์และรันดู $ g++ -lboost_date_time date_time.cpp
$ ./a.out
time t1: 2011-Sep-20 12:44:20.668140
time t2: 2011-Sep-20 12:44:21.668405

current time:: 12:44:21.668405
current sec time:: 21
current min time:: 44
current hours time:: 12
diff time: 00:00:01.000265
diff time in sec: 1
ตัวอ็อบเจกต์ของ ptime เองอาจจะทำอะไรไม่ได้มากเนื่องจากมีคุณสมบัติ immutable และมีพื้นฐานอยู่บน gregorian::date อีกทีนึง การใช้งานข้อมูลต่างๆ สามารถทำได้จากอ็อบเจกต์ของ time_duration แทนผ่านทาง time_of_day() เราสามารถเข้าถึงค่าเวลาต่างๆ ได้จากอ็อบเจกต์นี้ นอกจากนี้ ptime ยังสามารถแปลงเป็น struct tm ได้อีกด้วยผ่านทาง tm to_tm(ptime); จากตัวอย่างที่ได้แสดงไว้นี้เป็นการเอาอ็อบเจกต์ของ time_duration มาลบกันเพื่อหาว่าเวลาปัจจุบันต่างจากเวลาเริ่มต้นไปเท่าไหร่แล้ว เราสามารถนำมาลบกันได้อย่างง่ายดายไม่จำเป็นต้องแปลงจากชั่วโมงหรือนาทีให้อยู่ในรูปของวินาทีเองแล้วค่อยลบกัน :D

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ตัวเอ๋ยตัวผม

กลอนนี้ใช้เวลาประมาณ 20 นาทีเขียนขึ้นมาในห้องเรียนวิชาสัมนา 1 เพราะอาจารย์อยากให้แนะนำตัวเองเป็นกลอน ไม่รู้จะแต่งว่าไงเลยแต่งออกมาเป็นดอกสร้อย เห็นว่าพอใช้ได้เลยเอามาลงไว้เป็นอนุสร ๏ ตัวเอ๋ยตัวผม นิยมในพระพุทธศาสนา ตั้งจิตตั้งใจตั้งหน้า ใฝ่หาความรู้สู่ตน ตั้งใจศึกษาให้เชี่ยวชาญ ชำนาญในศาสตร์ที่ฝึกฝน ฝึกจิตฝึกสันดานให้เป็นคน เป็นชนในชาติที่ดีเอย ๚ะ๛

บันทึกการจัดงานศพ: พิธีฌาปนกิจศพ

ตรงส่วนนี้คงจะเขียนเกี่ยวกับพิธียกศพออกจากบ้าน และเกร็ดต่างๆ เล็กๆ น้อยๆ เนื่องจากที่จัดงานจะไม่นิยมไว้ศพที่วัด จะไว้ศพที่บ้าน และถ้าเป็นไปได้จะไว้ศพในบ้านเสียด้วยซ่ำ เมื่อถึงวันฌาปนกิจศพ หรือเผาศพ ก็จะมีการเซ่นไหว้ครั้งใหญ่ก่อนเคลื่อนย้ายศพไปวัดเพื่อฌาปนกิจ เครื่องเซ่นไว้จะประกอบไปด้วย ข้าว 5 ถ้วย กับข้าว 5 อย่าง หัวหมู ไก่ต้ม ไข่ต้ม หมูสามชั้นต้ม หมี่เหลืองผัด กุ้ง หอย ปู ปลา ผลไม้ 5 อย่าง ขนมขึ้น เมื่อมีการเซ่นไหว้ทุกครั้งจะต้องมี สัปรด น้ำชา 3 จอก เหล้าขาว 5 จอก(หลานๆ บอกว่าเจ็คไม่กินเหล้าขาว แต่มีคนบอกว่าเป็นการไหว้ตามประเพณี ^^ ) ซึ่งแต่ละอย่างมีความหมาย แต่ผมจำไม่ได้ต้องหาอีกครั้งนึง ตัวอย่างเครื่องเซ่นไหว้ เมื่อถึงพิธีเซ่นไหว้ จะมีการเซ่นไหว้โดยแบ่งออกเป็นคณะ แต่เพื่อความสะดวกและรวบรัดจึงมีการไหว้เพียงไม่กี่คณะ ซึ่งก็เหมือนเดิมคือผู้ที่มีศักดิ์สูงกว่าจะไม่รวมการเซ่นไหว้ครั้งนี้ คณะแรกจะเป็นผู้ไกล้ชิดผู้ตายมากที่สุดเริ่มตั้งแต่ลูกและภรรยา หลังจากนั้นก็จะเป็นน้องๆ แล้วก็หลานๆ และก็มิตรรักและผู้คนที่นับถือผู้ตาย หากเป็นเมื่อสมัยก่อนนั้น ต้องแยกออกเป็นเขย เป็นสะไภ้ ไหว้กันหลายยกหล

ด้วยระลึกถึงคุณย่า บันทึกจากความทรงจำ

บันทึกนี้เขียนขึ้นเพื่อบันทึกความทรงจำของผมที่มีต่อคุณย่าที่ล่วงลับไปแล้วอย่างไม่มีวันหวนคืน คุณย่าเปรียบเหมือนฟางเส้นสุดท้ายที่ร้อยครอบครัวใหญ่ของเราเอาไว้ไม่ให้แตกแยก หลังจากที่เสียคุณปู่ไปเมื่อ 23 ปีก่อน เนื่องจากบริเวณจังหวัดกระบี่ ตรัง พังงา ภูเก็ต มีชาวจีนอาศัยอยู่มาก แต่มักจะเป็นชาวจีนที่อพยพมาไทยนานแล้ว จากการการสังเกตของผม ชาวจีนแถบนี้โดยมากน่าจะเป็นชาว เปอรานากัน หรือชาวจีนที่อพยพมาจากจีนแล้วตั้งถิ่นฐานอยู่ในแหลมลายูหรืออินโดนีเซีย แล้วหลังจากนั้นจึงอพยพมาอาศัยต่อที่ประเทศไทย จากการบอกเล่าของคุณแม่ ก๋งเคยเล่าให้ฟังว่าตอนยังเด็กเคยแจวเรือจ้างอยู่ที่ปีนัง คุณย่าเคยเล่าว่าเป็นชาวฮกเกี้ยน อีกทั้วจากรูปวาดคุณย่าทวดที่มีการเกล้ามวยผม สวมเสื้อคอลึก ส่วนทางบ้านมีการใช้คำเรียกจีนผสมไทยถิ่นใต้อยู่มาก ผู้หญิงทุกคนนิยมสวมผ้าปาเต๊ะ เสื้อลูกไม้ (เสื้อฉลุลายดอกไม้) อาหารการกินเป็นแบบชาวไทยถิ่นใต้ทุกประการ (กินน้ำพริก แกงส้มเก่งกันทุกคน ยกเว้นก๋ง :D) อีกทั้งก๋งเกิดที่ดินแดนแถบนี้ไม่ได้เดินทางมาจากเมืองจีน (บางทีเรียก เตี่ยต่อเตี่ย คือ ทวดมาจากจีน ส่วนสถานที่เกิดไม่แน่ใจว่าเป็นปีนังหรือไทย)