تم الحل: ليس حساب التاريخ المستقبلي

آخر تحديث: 09/21/2023
نبذة عن الكاتب: مصدر الكوبول

يعد حساب التواريخ المستقبلية مطلبًا شائعًا في تطوير البرمجيات، خاصة في تطبيقات الأعمال مثل أنظمة الفوترة والجدولة. في لغات مثل Java أو Python، يمكن أن تكون هذه المهمة واضحة بفضل المكتبات والوظائف المضمنة. ومع ذلك، في اللغات القديمة مثل Cobol، يمكن أن تكون هذه المهمة أكثر تعقيدًا حيث يتعين علينا غالبًا أن نأخذ في الاعتبار عوامل مثل السنوات الكبيسة.

قسم تحديد الهوية.
معرف البرنامج. مواعيد المستقبل.
قسم البيانات.
قسم تخزين العمل.
01 WS-التاريخ الحالي.
05 WS-CURRENT-YEAR PIC 9(04).
05 WS-CURRENT-MONTH الموافقة المسبقة عن علم 9 (02).
05 WS-CURRENT-DAY الموافقة المسبقة عن علم 9 (02).
01 WS-FUTURE-DATE.
05 WS-FUTURE-YEAR الموافقة المسبقة عن علم 9(04).
05 WS-FUTURE-MONTH الموافقة المسبقة عن علم 9 (02).
05 WS-FUTURE-DAY الموافقة المسبقة عن علم 9 (02).
قسم الإجراءات.
قبول WS-CURRENT-DATE من DATE
حساب WS-FUTURE-DAY = WS-CURRENT-DAY + 7
انقل WS-الشهر الحالي إلى WS-FUTURE-MONTH
انقل WS-CURRENT-YEAR إلى WS-FUTURE-YEAR
إذا كان WS-FUTURE-DAY> 30
أضف 1 إلى WS-FUTURE-MONTH
اطرح 30 من WS-FUTURE-DAY
إنهاء إذا
إذا كان الشهر المستقبلي > 12
أضف 1 إلى WS-FUTURE-YEAR
اطرح 12 من شهر WS-FUTURE-MONTH
إنهاء إذا
عرض "التاريخ بعد أسبوع واحد هو" WS-FUTURE-DATE
توقف عن التشغيل.

دعونا نحلل هذا الرمز.

كيف يتم هيكلة الكود؟

يبدأ برنامج كوبول بـ "قسم تحديد الهوية" وهو قسم إلزامي في جميع برامج كوبول. عبارة "PROGRAM-ID" التي تتبعها تحدد البرنامج. "قسم البيانات" هو المكان الذي نحدد فيه كافة البيانات أو المتغيرات التي سيتم استخدامها في البرنامج. "قسم تخزين العمل" هو قسم فرعي من "قسم البيانات" حيث نعلن عن متغيرات العمل لدينا: "WS-CURRENT-DATE" و"WS-FUTURE-DATE". يتم تقسيم كل منها إلى أجزاء اليوم والشهر والسنة. "قسم الإجراءات" هو المكان الذي نقوم فيه بترميز المنطق لحساب التاريخ المستقبلي.

مفهوم التلاعب بالتاريخ في كوبول

يقبل برنامج Cobol الخاص بنا أولاً التاريخ الحالي من النظام. ثم يقوم بحساب التاريخ المستقبلي بإضافة 7 إلى اليوم الحالي. إذا تجاوز اليوم المستقبلي 30 (يشير إلى نهاية الشهر)، فإنه يزيد الشهر بمقدار 1 ويطرح 30 من اليوم. يتم استخدام عملية مماثلة لحساب نهاية العام. من الواضح أن هذا مثال مبسط لا يأخذ في الاعتبار اختلاف أطوال الأشهر أو السنوات الكبيسة، ولكنه يوضح العملية الأساسية.

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

الوظائف ذات الصلة: