گیگاثانیه

گیگاثانیه

آسان

مقدمه

روش ما برای اندازه‌گیری زمان کمی درهم‌وبرهم است. در یک دقیقه ۶۰ ثانیه داریم و در یک ساعت ۶۰ دقیقه. این از بابل باستان می‌آید، جایی که ۶۰ را مبنای دستگاه اعداد خود قرار می‌دادند. یک روز ۲۴ ساعت دارد، یک هفته ۷ روز. اما یک ماه چند روز دارد؟ خب، تعداد روزهای یک ماه نه تنها به این بستگی دارد که کدام ماه است، بلکه به این هم بستگی دارد که در کشور محل زندگی شما از چه نوع تقویمی استفاده می‌شود.

چه می‌شود اگر به‌جای این، برای بیان بازه‌های زمانی فقط از ثانیه استفاده کنیم؟ در آن صورت می‌توانیم برای نوشتن تعداد زیادی ثانیه به شکل کمیت‌هایی که فهمشان راحت‌تر است، از پیشوندهای دستگاه متریک استفاده کنیم.

  • یک دستور پخت ممکن است توضیح دهد که باید براونی را دو کیلوثانیه (یعنی دو هزار ثانیه) در فر بگذارید تا بپزد.
  • شاید شما و خانواده‌تان برای دو مگاثانیه (یعنی دو میلیون ثانیه) به جایی دوردست و عجیب سفر کنید.
  • و اگر هزار میلیون ثانیه از ازدواج شما و همسرتان گذشته بود، سالگرد یک‌گیگاثانیه‌ی خود را جشن می‌گرفتید.
Note

اگر روزی مریخ یا سیاره‌ی دیگری را مستعمره کنیم، اندازه‌گیری زمان حتی درهم‌وبرهم‌تر هم می‌شود. اگر کسی بگوید «سال»، منظورش سال روی زمین است یا سال روی مریخ؟

ایده‌ی این تمرین از رمان علمی‌تخیلی «A Deepness in the Sky» نوشته‌ی نویسنده ورنر وینج گرفته شده است. در آن، نویسنده از دستگاه متریک به عنوان مبنای اندازه‌گیری زمان استفاده می‌کند.

دستورالعمل‌ها

وظیفه‌ی شما تعیین تاریخ و زمانی است که یک «گیگاثانیه» پس از یک تاریخ مشخص رخ می‌دهد.

گیگاثانیه برابر است با هزار میلیون ثانیه. یعنی عدد ۱ و بعد از آن ۹ صفر.

اگر در ۲۴ ژانویه ۲۰۱۵، ساعت ۲۲:۰۰ (۱۰:۰۰:۰۰ شب) به دنیا آمده باشید، در ۲ اکتبر ۲۰۴۶، ساعت ۲۳:۴۶:۴۰ (۱۱:۴۶:۴۰ شب) یک گیگاثانیه سن خواهید داشت.

خواندن و نوشتن عددهای بزرگ

کد بیشتر از آنکه نوشته شود، خوانده می‌شود و خواندن یک عدد بزرگ یا طولانی در میان متن‌های دیگر می‌تواند چالش‌برانگیز باشد. دو روش برای خواناتر کردن عددها وجود دارد:

۱. استفاده از زیرخط در لیترال‌های عددی. 1_000_000 از 1000000 خواناتر است و مرور 10_100_201_330 از 10100201330 آسان‌تر است. برای اطلاعات بیشتر، PEP-0515 را ببینید.

۲. استفاده از نماد نمایی یا نماد علمی. حرف e (یا E) که پس از آن یک عدد صحیح می‌آید، نشان‌دهنده‌ی توان ۱۰ است که عدد پیش از e باید در آن ضرب شود (یعنی: 1e6، عدد ۱ در ۱۰ به توان ۶ ضرب می‌شود، که برابر 1000000 است). برای جزئیات بیشتر، این مرجع درباره‌ی نماد علمی را ببینید.

تاریخ و زمان در Python

این تمرین اشیایی از ماژول datetime در Python را بررسی می‌کند:

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Python Exercism

آماده‌اید گیگاثانیه را شروع کنید؟

در Exercism ثبت‌نام کنید تا Python را همراه با 17 مفهوم146 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.