সময় মাপার পদ্ধতিটা আসলে বেশ এলোমেলো। এক মিনিটে ৬০ সেকেন্ড, আর এক ঘণ্টায় ৬০ মিনিট। এটা এসেছে প্রাচীন ব্যাবিলন থেকে, যেখানে তাঁরা তাঁদের সংখ্যা পদ্ধতির ভিত্তি হিসেবে ৬০ ব্যবহার করতেন। এক দিনে ২৪ ঘণ্টা, এক সপ্তাহে ৭ দিন, আর এক মাসে কত দিন? আসলে মাসের দিনসংখ্যা নির্ভর করে আপনি কোন মাসে আছেন তার উপরই নয়, বরং আপনার দেশে কোন ধরনের ক্যালেন্ডার ব্যবহৃত হয় তার উপরও।
কিন্তু তার বদলে যদি আমরা শুধু সেকেন্ড দিয়েই সময়ের ব্যবধান প্রকাশ করি? তাহলে বড় সংখ্যার সেকেন্ডকে আরও সহজে বোঝা যায় এমন পরিমাণে লিখতে আমরা মেট্রিক সিস্টেমের প্রিফিক্স ব্যবহার করতে পারি।
যদি আমরা কখনো মঙ্গল গ্রহে বা অন্য কোনো গ্রহে উপনিবেশ স্থাপন করি, তাহলে সময় মাপা আরও জটিল হয়ে উঠবে। যদি কেউ "বছর" বলে, তাহলে সে কি বোঝায় পৃথিবীর বছর, নাকি মঙ্গলের বছর?
এই অনুশীলনীর ধারণা এসেছে লেখক ভার্নর ভিঞ্জের সায়েন্স ফিকশন উপন্যাস "A Deepness in the Sky" থেকে। এতে লেখক সময় পরিমাপের ভিত্তি হিসেবে মেট্রিক সিস্টেম ব্যবহার করেছেন।
আপনার কাজ হলো একটি নির্দিষ্ট তারিখের এক গিগাসেকেন্ড পরে তারিখ ও সময় বের করা।
এক গিগাসেকেন্ড হলো এক হাজার মিলিয়ন সেকেন্ড। অর্থাৎ এক লিখে তার পরে নয়টি শূন্য বসালে যা হয়।
আপনি যদি ২৪ জানুয়ারি, ২০১৫, রাত 22:00 (রাত 10:00:00)-তে জন্মগ্রহণ করে থাকেন, তাহলে ২ অক্টোবর, ২০৪৬, রাত 23:46:40 (রাত 11:46:40)-এ আপনার বয়স এক গিগাসেকেন্ড হতো।
তারিখ নিয়ে কাজ করার জন্য Prolog-এর বিল্ট-ইন সমর্থন বেশ প্রাথমিক। আপনি শুধু Prolog-এ যা বিল্ট-ইন আছে তা দিয়েই এই অনুশীলনীটি সমাধান করতে পারেন, তবে তারিখ নিয়ে কাজ করার আরও অনেক সুবিধাজনক একটি উপায় হলো date_time প্যাকেজ।
আপনার ইনস্টল করা Swipl সংস্করণটি যদি বেশ হালনাগাদ হয়, তাহলে নিচের কমান্ডটি চালিয়ে প্যাকেজটি ইনস্টল করতে পারেন:
swipl pack install date_time
সেটি কাজ না করলে আপনি এটি চালাতে পারেন:
swipl -g 'pack_install(date_time)'
আপনি যদি অনলাইন এডিটর ব্যবহার করেন, তাহলে নিজে হাতে কিছু ইনস্টল করার দরকার নেই।
date_time প্যাকেজটি ব্যবহার করতে আপনার সলিউশন ফাইলের একদম উপরে নিচের কোডটি যোগ করুন:
:- use_module(library(date_time)).
টিপ: date_time প্যাকেজের সোর্স সুন্দরভাবে ডকুমেন্ট করা আছে এবং এটি আপনার অনেক উপকারে আসবে!
Exercism-এ সাইন আপ করুন, Prolog ট্র্যাকের 109টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।