সময় মাপার পদ্ধতিটা আসলে বেশ এলোমেলো। এক মিনিটে ৬০ সেকেন্ড, আর এক ঘণ্টায় ৬০ মিনিট। এটা এসেছে প্রাচীন ব্যাবিলন থেকে, যেখানে তাঁরা তাঁদের সংখ্যা পদ্ধতির ভিত্তি হিসেবে ৬০ ব্যবহার করতেন। এক দিনে ২৪ ঘণ্টা, এক সপ্তাহে ৭ দিন, আর এক মাসে কত দিন? আসলে মাসের দিনসংখ্যা নির্ভর করে আপনি কোন মাসে আছেন তার উপরই নয়, বরং আপনার দেশে কোন ধরনের ক্যালেন্ডার ব্যবহৃত হয় তার উপরও।
কিন্তু তার বদলে যদি আমরা শুধু সেকেন্ড দিয়েই সময়ের ব্যবধান প্রকাশ করি? তাহলে বড় সংখ্যার সেকেন্ডকে আরও সহজে বোঝা যায় এমন পরিমাণে লিখতে আমরা মেট্রিক সিস্টেমের প্রিফিক্স ব্যবহার করতে পারি।
যদি আমরা কখনো মঙ্গল গ্রহে বা অন্য কোনো গ্রহে উপনিবেশ স্থাপন করি, তাহলে সময় মাপা আরও জটিল হয়ে উঠবে। যদি কেউ "বছর" বলে, তাহলে সে কি বোঝায় পৃথিবীর বছর, নাকি মঙ্গলের বছর?
এই অনুশীলনীর ধারণা এসেছে লেখক ভার্নর ভিঞ্জের সায়েন্স ফিকশন উপন্যাস "A Deepness in the Sky" থেকে। এতে লেখক সময় পরিমাপের ভিত্তি হিসেবে মেট্রিক সিস্টেম ব্যবহার করেছেন।
আপনার কাজ হলো একটি নির্দিষ্ট তারিখের এক গিগাসেকেন্ড পরে তারিখ ও সময় বের করা।
এক গিগাসেকেন্ড হলো এক হাজার মিলিয়ন সেকেন্ড। অর্থাৎ এক লিখে তার পরে নয়টি শূন্য বসালে যা হয়।
আপনি যদি ২৪ জানুয়ারি, ২০১৫, রাত 22:00 (রাত 10:00:00)-তে জন্মগ্রহণ করে থাকেন, তাহলে ২ অক্টোবর, ২০৪৬, রাত 23:46:40 (রাত 11:46:40)-এ আপনার বয়স এক গিগাসেকেন্ড হতো।
এই অনুশীলনীতে GNU awk-এর সময় ফাংশন ব্যবহার করা প্রয়োজন।
ডেটটাইম পার্সিং ও ফরম্যাটিং ফাংশনগুলোর জন্য অবশ্যই UTC ফ্ল্যাগ সেট করুন। উদাহরণস্বরূপ:
export TZ=Asia/Kolkata
gawk 'BEGIN {
time = 1234567890
print strftime("%Y-%m-%d %T", time) # format for local timezone
print strftime("%Y-%m-%d %T", time, 1) # format for UTC
}'
আউটপুট:
2009-02-14 05:01:30
2009-02-13 23:31:30
Exercism-এ সাইন আপ করুন, AWK ট্র্যাকের 3টি কনসেপ্ট92টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।