أضف أو اطرح الوقت من تاريخ باستخدام وحدات مختلفة - سنوات، أشهر، أسابيع، وأيام. مفيد للتخطيط للمشاريع، الجدولة، والعديد من الحسابات الزمنية.
آلة حساب التقويم هي أداة متعددة الاستخدامات مصممة لأداء عمليات حسابية على التواريخ. تتيح للمستخدمين إضافة أو طرح وحدات زمنية (سنوات، أشهر، أسابيع، وأيام) من تاريخ معين. هذه الآلة مفيدة بشكل خاص في تخطيط المشاريع، الجدولة، والعديد من الحسابات الزمنية.
تستخدم آلة حساب التقويم الخوارزمية التالية لحساب التواريخ:
لإضافة/طرح السنوات:
لإضافة/طرح الأشهر:
لإضافة/طرح الأسابيع:
لإضافة/طرح الأيام:
السنوات الكبيسة: عند إضافة/طرح السنوات، يتم اتخاذ احتياطات خاصة لـ 29 فبراير. إذا كانت السنة الناتجة ليست سنة كبيسة، يتم ضبط التاريخ إلى 28 فبراير.
تواريخ نهاية الشهر: عند إضافة/طرح الأشهر، إذا كان التاريخ الناتج غير موجود (مثل 31 أبريل)، يتم ضبطه إلى آخر تاريخ صالح من الشهر (مثل 30 أبريل).
الانتقال بين BCE/CE: تتعامل الآلة مع التواريخ عبر الانتقال بين BCE/CE بشكل صحيح، مع الأخذ في الاعتبار أنه لا يوجد سنة 0 في التقويم الغريغوري.
حدود التاريخ: تحترم الآلة حدود نظام التاريخ الأساسي، عادة من 1 يناير، 1 CE إلى 31 ديسمبر، 9999 CE.
تتمتع آلة حساب التقويم بالعديد من التطبيقات العملية:
إدارة المشاريع: حساب مواعيد تسليم المشاريع، تواريخ المعالم، وفترات السبرينت.
التخطيط المالي: تحديد مواعيد استحقاق الدفع، شروط القرض، وتواريخ نضوج الاستثمار.
تخطيط الأحداث: حساب التواريخ للأحداث المتكررة، جداول المهرجانات، أو احتفالات الذكرى.
القانونية والتعاقدية: حساب المواعيد النهائية للإجراءات القانونية، انتهاء العقود، أو فترات الإشعار.
التخطيط الأكاديمي: تحديد تواريخ بدء/انتهاء الفصل الدراسي، مواعيد تسليم الواجبات، أو جداول البحث.
تخطيط السفر: حساب مدة الرحلات، تواريخ انتهاء صلاحية التأشيرات، أو نوافذ الحجز.
الرعاية الصحية: جدولة المواعيد المتابعة، دورات الأدوية، أو فترات العلاج.
التصنيع واللوجستيات: تخطيط جداول الإنتاج، تواريخ التسليم، أو فترات الصيانة.
بينما تعتبر آلة حساب التقويم متعددة الاستخدامات، هناك أدوات وطرق أخرى لمعالجة التواريخ والأوقات:
وظائف جداول البيانات: تقدم برامج مثل Microsoft Excel وGoogle Sheets وظائف تاريخ مدمجة لحسابات بسيطة.
مكتبات لغات البرمجة: تحتوي معظم لغات البرمجة على مكتبات قوية للتاريخ/الوقت (مثل datetime في بايثون، Moment.js في JavaScript).
آلات حاسبة للتاريخ عبر الإنترنت: تقدم مواقع مختلفة أدوات بسيطة لحساب التواريخ، غالبًا مع تركيزات محددة (مثل آلات حاسبة لأيام العمل).
برامج إدارة المشاريع: تتضمن أدوات مثل Microsoft Project أو Jira ميزات حساب التواريخ ضمن وظائف الجدولة الخاصة بها.
آلات حاسبة للوقت Unix: للمستخدمين الفنيين، تعمل هذه الأدوات مع التواريخ كالثواني المنقضية منذ 1 يناير 1970.
تطبيقات الهاتف المحمول: تتضمن العديد من تطبيقات التقويم والإنتاجية ميزات حساب التواريخ.
تطور مفهوم الحسابات الزمنية جنبًا إلى جنب مع تطوير أنظمة التقويم:
الحضارات القديمة: طورت الحضارات المصرية، البابلية، والمايا أنظمة تقويم معقدة، مما وضع الأساس لحساب التواريخ.
التقويم اليولي (45 قبل الميلاد): قدمه يوليوس قيصر، قام بتوحيد السنة الشمسية وقدم مفهوم السنوات الكبيسة، مما جعل حسابات التواريخ على المدى الطويل أكثر دقة.
التقويم الغريغوري (1582): قدمه البابا غريغوري الثالث عشر، قام بتحسين قاعدة السنوات الكبيسة في التقويم اليولي، مما زاد من دقة حسابات التواريخ على المدى الطويل.
اعتماد الوقت القياسي (القرن التاسع عشر): ساهم تقديم المناطق الزمنية والوقت القياسي في تسهيل حسابات التاريخ والوقت الدولية بدقة أكبر.
عصر الكمبيوتر (القرن العشرين): أدى ظهور الحواسيب إلى تطوير مكتبات وخوارزميات مختلفة للتاريخ/الوقت، مما جعل الحسابات الزمنية المعقدة متاحة وسريعة.
الطابع الزمني Unix (1970): قدم طريقة قياسية لتمثيل التواريخ كالثواني منذ 1 يناير 1970، مما يسهل الحسابات الزمنية في أنظمة الكمبيوتر.
ISO 8601 (1988): ساعد هذا المعيار الدولي لتمثيل التاريخ والوقت على توحيد الحسابات الزمنية عبر أنظمة وثقافات مختلفة.
إليك بعض أمثلة الشيفرة لأداء حسابات التواريخ في لغات البرمجة المختلفة:
1from datetime import datetime, timedelta
2
3def add_time(date_str, years=0, months=0, weeks=0, days=0):
4 date = datetime.strptime(date_str, "%Y-%m-%d")
5
6 # إضافة السنوات والأشهر
7 new_year = date.year + years
8 new_month = date.month + months
9 while new_month > 12:
10 new_year += 1
11 new_month -= 12
12 while new_month < 1:
13 new_year -= 1
14 new_month += 12
15
16 # التعامل مع حالات نهاية الشهر
17 last_day_of_month = (datetime(new_year, new_month % 12 + 1, 1) - timedelta(days=1)).day
18 new_day = min(date.day, last_day_of_month)
19
20 new_date = date.replace(year=new_year, month=new_month, day=new_day)
21
22 # إضافة الأسابيع والأيام
23 new_date += timedelta(weeks=weeks, days=days)
24
25 return new_date.strftime("%Y-%m-%d")
26
27## مثال للاستخدام
28print(add_time("2023-01-31", months=1)) # الناتج: 2023-02-28
29print(add_time("2023-02-28", years=1)) # الناتج: 2024-02-28
30print(add_time("2023-03-15", weeks=2, days=3)) # الناتج: 2023-04-01
31
1function addTime(dateStr, years = 0, months = 0, weeks = 0, days = 0) {
2 let date = new Date(dateStr);
3
4 // إضافة السنوات والأشهر
5 date.setFullYear(date.getFullYear() + years);
6 date.setMonth(date.getMonth() + months);
7
8 // إضافة الأسابيع والأيام
9 date.setDate(date.getDate() + (weeks * 7) + days);
10
11 return date.toISOString().split('T')[0];
12}
13
14// مثال للاستخدام
15console.log(addTime("2023-01-31", 0, 1)); // الناتج: 2023-02-28
16console.log(addTime("2023-02-28", 1)); // الناتج: 2024-02-28
17console.log(addTime("2023-03-15", 0, 0, 2, 3)); // الناتج: 2023-04-01
18
1import java.time.LocalDate;
2import java.time.Period;
3
4public class DateCalculator {
5 public static String addTime(String dateStr, int years, int months, int weeks, int days) {
6 LocalDate date = LocalDate.parse(dateStr);
7
8 // إضافة السنوات، الأشهر، الأسابيع، والأيام
9 LocalDate newDate = date
10 .plus(Period.ofYears(years))
11 .plus(Period.ofMonths(months))
12 .plus(Period.ofWeeks(weeks))
13 .plus(Period.ofDays(days));
14
15 return newDate.toString();
16 }
17
18 public static void main(String[] args) {
19 System.out.println(addTime("2023-01-31", 0, 1, 0, 0)); // الناتج: 2023-02-28
20 System.out.println(addTime("2023-02-28", 1, 0, 0, 0)); // الناتج: 2024-02-28
21 System.out.println(addTime("2023-03-15", 0, 0, 2, 3)); // الناتج: 2023-04-01
22 }
23}
24
تظهر هذه الأمثلة كيفية إجراء حسابات التواريخ في بايثون، JavaScript، وJava، مع التعامل مع حالات الحافة المختلفة مثل تواريخ نهاية الشهر والسنوات الكبيسة.
إضافة شهر واحد إلى 31 يناير 2023:
إضافة سنة واحدة إلى 29 فبراير 2024 (سنة كبيسة):
طرح أسبوعين و3 أيام من 15 مارس 2023:
إضافة 18 شهرًا إلى 31 يوليو 2022:
ريتشاردز، إ. ج. (2013). التقاويم. في س. إ. أوربان و ب. ك. سيدلمان (محرران)، الملحق التفسيري للمنشور الفلكي (الطبعة الثالثة، الصفحات 585-624). ميل فالي، كاليفورنيا: مطبوعات جامعة العلوم.
ديرشوويتز، ن.، و رينغولد، إ. م. (2008). حسابات التقاويم (الطبعة الثالثة). مطبعة جامعة كامبريدج.
كوهين، م.، و جونسون، ك. (2013). النمذجة التنبؤية التطبيقية. سبرينغر.
"فئات التاريخ والوقت". أوراكل. https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
"datetime — أنواع التاريخ والوقت الأساسية". مؤسسة بايثون للبرمجيات. https://docs.python.org/3/library/datetime.html
"التاريخ". شبكة مطوري موزيلا. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
اكتشف المزيد من الأدوات التي قد تكون مفيدة لسير عملك