اعرض الإجازات الرسمية لعدة دول

في عام 2026، لدى الولايات المتحدة 11 إجازة رسمية، والمملكة المتحدة 14، واليابان 18، وألمانيا 9، وإندونيسيا 17، ولا تشترك الدول الخمس في تاريخ عطلة سوى 1 يناير. كرر الطلب عبر رموز الدول، بطلب واحد لكل دولة وسنة، ثم اجمع الدول تحت كل تاريخ عطلة لمقارنة تقاويمها.

نفّذ ذلك باستخدام واجهة API

  1. احصل على مفتاح واضبط متغير البيئة احصل على مفتاح مجاني من صفحة التسجيل واحتفظ به في متغير بيئة باسم NARWHAL_API_KEY. يقرأ البرنامج ذلك المتغير ويرسل المفتاح بصيغة Authorization: Bearer YOUR_KEY، لذا استخدم البيئة التي ستشغّل فيها Python.
  2. اختر الدول والسنة استخدم رموز الدول وفق ISO 3166 alpha-3 مع GET /v1/calendars/holidays/{country}/{year}: يطلب المثال USA وGBR وJPN وDEU وIDN لعام 2026. تحتاج كل دولة وسنة إلى طلب مستقل، لذا تُجري هذه المقارنة خمسة طلبات؛ واستخدم السنة نفسها لجميع الدول التي تريد مقارنتها.
  3. اجمع الدول تحت كل تاريخ شغّل برنامج Python لطلب عطلات كل دولة وتجميع سجلات الاستجابة حسب date، مع مجموعة من رموز الدول لكل تاريخ. يرتب البرنامج تلك التواريخ، ويطبع ما تشترك فيه ثلاث دول على الأقل، ثم يحسب التواريخ المميزة لكل دولة في المجموعة الكاملة، بما فيها التواريخ التي لا تظهر في مخرجات التواريخ المشتركة.
    Python، عطلات خمس دول
    import os
    from collections import defaultdict
    import requests
    
    HEADERS = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}
    COUNTRIES = ["USA", "GBR", "JPN", "DEU", "IDN"]
    
    by_date = defaultdict(set)
    for country in COUNTRIES:
        r = requests.get(f"https://api.narwhalapi.com/v1/calendars/holidays/{country}/2026",
                         params={"scope": "national_public"} if country == "IDN" else None,
                         headers=HEADERS, timeout=10)
        r.raise_for_status()
        for h in r.json()["holidays"]:
            by_date[h["date"]].add(country)
    
    for day in sorted(by_date):
        if len(by_date[day]) >= 3:
            print(day, sorted(by_date[day]))
    print({c: sum(1 for d in by_date.values() if c in d) for c in COUNTRIES})
  4. اقرأ التواريخ المشتركة والإجمالي لكل دولة لعام 2026، تتضمن مخرجات التواريخ المشتركة 1 يناير و3 أبريل و25 مايو و25 ديسمبر، ويتضمن السطر الأخير إجمالي التواريخ المميزة لكل دولة. تستخدم هذه الإجماليات نطاق federal_government للولايات المتحدة، ونطاق bank للمملكة المتحدة، ونطاق national_public لليابان وألمانيا؛ ويحدد طلب إندونيسيا national_public صراحةً.

اقرأ قائمة الدول لتاريخ مشترك بصورة منفصلة عن اسم العطلة. تشترك ألمانيا والمملكة المتحدة والولايات المتحدة في تاريخ عطلة يوم 25 مايو 2026؛ وهي في الولايات المتحدة يوم الذكرى. يجمع البرنامج التواريخ، لذا لا يشترط التطابق أن تستخدم الدول اسم العطلة نفسه. وتظهر الجمعة العظيمة في 3 أبريل 2026 لألمانيا والمملكة المتحدة وإندونيسيا، لذا يستوفي ذلك التاريخ أيضًا الحد الأدنى لعدد الدول المشتركة. تتضمن قائمة دوله DEU وGBR وIDN.

نفّذ ذلك في جدول بيانات أو دون شيفرة

افتح صفحة تقويم العطلات (الإنجليزية) لكل دولة لمقارنة التواريخ دون برنامج. للمقارنة في جدول بيانات، الصق تواريخ كل دولة في عمود مستقل واحتفظ بإدخال واحد لكل تاريخ مميز داخل تلك الدولة. ضع التاريخ الذي تريد مقارنته في A2، وقوائم تواريخ الدول الأخرى في الأعمدة B:E.

احسب التواريخ المطابقة في الأعمدة الأخرى
=COUNTIF(B:E, A2)

تحسب الصيغة الخلايا المطابقة في أعمدة الدول الأخرى. يمثّل التاريخ في A2 بالفعل الدولة التي تقع قائمتها في العمود A، لذا اقرأ نتيجة الصيغة بوصفها عدد المطابقات في مواضع أخرى من الورقة. أبقِ تواريخ كل دولة معًا عند لصقها، لتتمكن من إرجاع كل مطابقة إلى تقويمها. انسخ الصيغة بجانب التواريخ التي تريد مقارنتها في العمود A. اقرأ كل نتيجة مع التاريخ في الصف نفسه؛ فالصيغة تبحث في الأعمدة الأخرى عن التاريخ نفسه، لذا لا تحتاج قوائمها إلى تطابق مواضع الصفوف.

متى تستخدم كل خيار

الحالةالخيار الأنسبالسبب
مقارنة دولتين أو ثلاث مرة واحدةصفحات التقويماقرأ تواريخ عطلات كل دولة مباشرةً
إنشاء تقويم للفريق أو معالجة الرواتب عبر المكاتبالبرنامج، يُشغّل مرة سنويًا لكل دولةاجمع الدول تحت كل تاريخ واحسب التواريخ المميزة
تضمين بعض المناطق فقطرشّح حسب subdivision_codes في الاستجابةاختر التقسيمات الإدارية ذات الصلة بالمقارنة

لماذا تتكرر صفوف المملكة المتحدة؟

تختلف العطلات المصرفية بين الأمم المكوّنة للمملكة المتحدة، لذا يظهر كل تاريخ مرة لكل مجموعة من التقسيمات الإدارية. في عام 2026، تتضمن استجابة المملكة المتحدة 28 صفًا قبل إزالة التكرار، لأن إنجلترا وويلز وأيرلندا الشمالية واسكتلندا لها صفوف منفصلة، بينما يتضمن التقويم المجمّع 14 تاريخًا مميزًا. اجمع التواريخ في مجموعة عندما تريد إجمالي التواريخ المميزة للدولة.

لإنشاء تقويم إقليمي، استخدم subdivision_codes في الاستجابة لاختيار السجلات المعنية قبل جمع التواريخ. بذلك يبقى اختيار المنطقة منفصلًا عن حساب التواريخ المميزة.

كيف أستبعد أيام الإجازة الجماعية؟

مرر scope=national_public لإندونيسيا لاستبعاد أيام الإجازة الجماعية، المعروفة باسم cuti bersama. لعام 2026، يتضمن هذا الاختيار 17 تاريخًا مميزًا للإجازات الرسمية، بينما تتضمن الاستجابة دون ترشيح 25 صفًا لأنها تشمل أيضًا سجلات collective_leave. يُضاف معامل scope إلى طلب إندونيسيا في هذه المقارنة.

طبّق النطاق قبل إضافة التواريخ إلى المجموعة المجمّعة. وإلا فستتضمن سجلات إندونيسيا الإجازات الجماعية عند مقارنة التواريخ المشتركة أو حساب عطلات الدولة.

هل تحسب الدول العطلات الواقعة في نهاية الأسبوع بالطريقة نفسها؟

لا، تستخدم قائمة كل دولة التاريخ الذي تحدده تلك الدولة. تنقل بعض الدول العطلة إلى أحد أيام الأسبوع وتضع لها علامة observed. استخدم التاريخ الوارد في الاستجابة للمقارنة، بما فيه التاريخ البديل حيث يظهر، بدلًا من نقل كل عطلة واقعة في نهاية الأسبوع وفق قاعدة واحدة لجميع الدول.

مثال تطبيقي: 25 ديسمبر 2026

ابدأ بتاريخ 25 ديسمبر 2026 وابحث عنه في قائمة العطلات المختارة لكل دولة. تضيف كل من ألمانيا والمملكة المتحدة وإندونيسيا والولايات المتحدة رمز دولة؛ ولا توجد عطلة في اليابان في ذلك التاريخ. احسب كل دولة مطابقة مرة واحدة، حتى عندما تتضمن استجابتها صفوفًا إقليمية منفصلة لذلك التاريخ.

الدولةالرمزعطلة في 25 ديسمبر 2026
ألمانياDEUنعم
المملكة المتحدةGBRنعم
إندونيسياIDNنعم
الولايات المتحدةUSAنعم
اليابانJPNلا
الإجماليDEU, GBR, IDN, USA4 من 5 دول

احسب رموز الدول المميزة لتاريخ 25 ديسمبر 2026 لتحصل على أربع من الدول الخمس. يستوفي التاريخ شرط الظهور في مخرجات البرنامج لأنه مشترك بين ثلاث دول على الأقل. وللمقارنة، يتضمن 1 يناير 2026 رموز الدول الخمس كلها، وهو التاريخ الوحيد المشترك بينها جميعًا خلال عام 2026.

نُشر في .

الخطوات التالية