هر ماه، همسرتان با بهترین دوستش ملاقات میکند. هر دوی آنها برنامههای بسیار پرمشغلهای دارند و همین پیدا کردن یک تاریخ مناسب را دشوار میکند! با توجه به برنامهی پرمشغلهی خودتان، همسرتان همیشه تاریخهای احتمالی ملاقات را با شما دوباره بررسی میکند:
در تماس این ماه، همسرتان این سؤال را از شما پرسید:
گیج میشوید و میپرسید روز «teenth» چیست. همسرتان توضیح میدهد که روز teenth، مفهومی که خودش از خودش درآورده است، به روزهایی از ماه اشاره دارد که به «-teenth» ختم میشوند:
از آنجا که هفت روز هفته هم وجود دارد، تضمین میشود که هر روز هفته در هر ماه دقیقاً یک روز teenth دارد.
حالا که مفهوم روز teenth را میفهمید، تقویمتان را نگاه میکنید. برای پنجشنبهی teenth هیچ برنامهای ندارید، پس با خوشحالی تاریخ را با همسرتان تأیید میکنید.
وظیفهی شما این است که با داشتن ماه، سال، روز هفته و هفته، تاریخ دقیق یک دورهمی را پیدا کنید.
شش مقدار برای هفته وجود دارد که باید در نظر بگیرید: first، second، third، fourth، last، teenth.
برای مثال، ممکن است از شما خواسته شود تاریخ دورهمی در اولین دوشنبهی ژانویه ۲۰۱۸ (۱ ژانویه ۲۰۱۸) را پیدا کنید.
به همین ترتیب، ممکن است از شما خواسته شود که موارد زیر را پیدا کنید:
هفتهی teenth به هفت روز در ماه اشاره دارد که به «-teenth» ختم میشوند (روزهای ۱۳، ۱۴، ۱۵، ۱۶، ۱۷، ۱۸ و ۱۹).
اگر از ما خواسته شود شنبهی teenth اوت ۱۹۵۳ را پیدا کنیم، تقویم آن را بررسی میکنیم:
August 1953
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
از این تقویم درمییابیم که شنبهی teenth، ۱۵ اوت ۱۹۵۳ است.
پشتیبانی توکار Prolog از تاریخها تا حدی ابتدایی است. روشی بسیار بهتر برای کار با تاریخها استفاده از [بستهی date_time][date_time-package] است.
date_time
اگر نسخهی Swipl نصبشدهی شما بهروز باشد، میتوانید بسته را با اجرای این دستور نصب کنید:
swipl pack install date_time
اگر این روش جواب نداد، میتوانید این را اجرا کنید:
swipl -g 'pack_install(date_time)'
اگر از ویرایشگر آنلاین استفاده میکنید، نیازی نیست چیزی را بهصورت دستی نصب کنید.
date_time
کد زیر را برای استفاده از بستهی date_time به بالای فایل راهحل خود اضافه کنید:
:- use_module(library(date_time)).
نکته: [منبع بستهی date_time][https://www.swi-prolog.org/pack/file_details/date_time/prolog/date_time.pl?show=src] بهخوبی مستند شده است و میتواند کمک بزرگی باشد!