كل شهر، يلتقي شريكك بأفضل أصدقائه. كلاهما مشغولان جدًا، ما يجعل إيجاد موعد مناسب أمرًا صعبًا! وبما أن جدولك أنت أيضًا مزدحم، فإن شريكك يتحقق دائمًا من مواعيد اللقاء المحتملة معك:
في مكالمة هذا الشهر، سألك شريكك هذا السؤال:
وفي حيرة من أمرك، تسأل ما معنى يوم «teenth». يشرح لك شريكك أن يوم teenth، وهو مفهوم اختلقه، يشير إلى الأيام في الشهر التي تنتهي بـ '-teenth':
ولأن أيام الأسبوع سبعة أيضًا، فمن المضمون أن لكل يوم من أيام الأسبوع يوم teenth واحدًا فقط في كل شهر.
الآن وقد فهمت مفهوم يوم teenth، تتحقق من تقويمك. ليس لديك أي شيء مخطط له في الخميس من أيام teenth، فتؤكد الموعد بسعادة مع شريكك.
مهمتك هي إيجاد التاريخ الدقيق للقاء، بمعلومية الشهر والسنة ويوم الأسبوع والأسبوع.
هناك ست قيم للأسبوع يجب أن تأخذها في الاعتبار: first وsecond وthird وfourth وlast وteenth.
على سبيل المثال، قد يُطلب منك إيجاد تاريخ اللقاء في يوم الاثنين الأول من يناير 2018 (1 يناير 2018).
وبالمثل، قد يُطلب منك إيجاد:
teenth في مايو 2020 (13 مايو 2020)teenth في أغسطس 1953 (15 أغسطس 1953)teenth
يشير أسبوع teenth إلى الأيام السبعة في الشهر التي تنتهي بـ '-teenth' (الأيام 13 و14 و15 و16 و17 و18 و19).
وإذا طُلب منك إيجاد يوم السبت من الأسبوع teenth في أغسطس 1953، فإننا ننظر في تقويمه:
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 هو 15 أغسطس 1953.
دعم Prolog المدمج للتواريخ بدائي إلى حد ما. وهناك أسلوب أجمل بكثير للتعامل مع التواريخ، وهو استخدام [حزمة date_time][date_time-package].
إذا كان إصدار Swipl المثبّت لديك حديثًا نسبيًا، يمكنك تثبيت الحزمة بتشغيل:
swipl pack install date_time
إذا لم ينجح ذلك، يمكنك تشغيل:
swipl -g 'pack_install(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] موثّق توثيقًا جيدًا، وقد يكون عونًا كبيرًا لك!
سجّل في Exercism لتتعلّم وتتقن Prolog عبر 109 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.