أول وآخر يوم في السنة
بالنسبة إلى 15 يونيو 2024 تمتد السنة من 2024-01-01 إلى 2024-12-31 وفيها 366 يومًا لأنها كبيسة. استخدم التاريخين حدودًا جاهزة للتقارير السنوية والتصفية ومجلدات الأرشيف وقواعد الحفظ. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- التاريخ
- 2024-06-15
- السنة
- 2,024
- اليوم الأول
- 2024-01-01
- اليوم الأخير
- 2024-12-31
- أيام السنة
- 366
تستقبل هذه الحاسبة تاريخ ISO صريحًا وتعيد الحدين الشاملين للسنة الميلادية نفسها. وهي مفيدة عندما يحتاج تقرير أو مرشح أو أرشيف أو شرط تحقق إلى 1 يناير و31 ديسمبر من دون الرجوع إلى الساعة الحالية. يُفحص الإدخال أولًا للتأكد من أنه تاريخ حقيقي في التقويم الغريغوري، بما في ذلك قواعد السنوات الكبيسة للسنوات المئوية. تعتمد المعالجة على تحليل نص ثابت وحسابات صحيحة بدلًا من كائن Date في JavaScript. لذلك لا تستطيع المنطقة الزمنية للخادم أو التوقيت الصيفي أو الإعدادات المحلية أو لحظة التنفيذ تغيير الإجابة. وتوضح الاستجابة كذلك السنة، وهل هي كبيسة، وإجمالي عدد أيامها.
كيفية اشتقاق حدي السنة
أدخل تاريخًا يتكون من أربعة أرقام للسنة ورقمين للشهر ورقمين لليوم، تفصل بينها شرطات. تفصل الحاسبة هذه المكونات وتتحقق منها وفق التقويم الغريغوري الاستباقي. يجب أن يكون الشهر بين 01 و12، ويعتمد اليوم المسموح به على الشهر والسنة.
يكون فبراير 29 يومًا إذا كانت السنة تقبل القسمة على أربعة، لكن السنة المئوية يجب أن تقبل القسمة على أربعمائة أيضًا؛ ولذلك تكون 2000 كبيسة، ولا تكون 1900 كبيسة، وتكون 2024 كبيسة. بعد التأكد من وجود التاريخ، لا يلزم لتكوين الحدين إلا مكون السنة. يكون أول يوم شامل هو السنة ذات الأرقام الأربعة متبوعة بـ01-01، ويكون آخر يوم شامل هو السنة نفسها متبوعة بـ12-31.
لا يتغير الحدان في السنة الكبيسة، لأن اليوم الإضافي يقع في فبراير. لا تسأل الطريقة عن تاريخ اليوم ولا تستخدم Date، ولذلك ينشئ خادم UTC والمتصفح المحلي وعامل الحافة سلاسل ISO نفسها. زمن العملية ثابت ولا توجد اتصالات خارجية.
التحقق من الإدخال وحقول الاستجابة
أرسل كائنًا يتضمن الحقل الإلزامي date، مثل 2024-06-15. الصيغة المقبولة صارمة عمدًا؛ إذ تُرفض الأشهر المختصرة مثل 2024-6-15، والتواريخ ذات الشرطات المائلة، والطوابع الزمنية، والمسافات المحيطة، وصيغ التاريخ المحلية. تمنع هذه الصرامة جهازين من تفسير النص نفسه بطرق مختلفة.
كما تُرفض قيمة الشهر صفر أو ثلاثة عشر، و31 أبريل، و30 فبراير، و29 فبراير في سنة عادية. عند النجاح، تكرر الاستجابة التاريخ المتحقق منه وتعيد year عددًا صحيحًا. التاريخ صريح وإلزامي دائمًا، ولا يُستبدل بتاريخ اليوم عند غيابه.
لذلك تظل الطلبات المحفوظة والاختبارات والمهام التاريخية قابلة لإعادة الإنتاج بعد سنوات.
استخدام حدود السنة الميلادية بأمان
تفيد حدود السنة الميلادية في استعلامات قواعد البيانات السنوية وفترات التقارير ومجلدات المستندات وتسميات الاحتفاظ والقيم الابتدائية لمنتقي التاريخ. إذا طلب نظام آخر طوابع زمنية، فطبّق سياسة منطقته الزمنية صراحة بعد استلام النتيجة. في النطاقات الزمنية نصف المفتوحة، يُستخدم اليوم الأول المعاد عادة حدًا أدنى شاملًا، ويُشتق 1 يناير من السنة التالية على حدة حدًا أعلى غير شامل.
تعيد هذه القدرة عمدًا آخر يوم تقويمي حقيقي في السنة المطلوبة، لأنه أوضح للجداول الموجهة إلى البشر. ولا تحسب السنوات المالية أو الدراسية أو فترات الاثني عشر شهرًا المتحركة أو أيام العمل أو السنة الحالية؛ فهذه المفاهيم تحتاج إلى قواعد إضافية. للاختبارات، اختر تواريخ حول 29 فبراير وحدود القرون و1 يناير و31 ديسمبر.
حالات الاستخدام
مرشحات التقارير السنوية
حوّل أي معاملة مؤرخة إلى حدين شاملين من 1 يناير إلى 31 ديسمبر لاستعلام متسق عن السنة الميلادية.
تسمية الأرشيفات والمجلدات
اشتق حدودًا سنوية ثابتة من تاريخ السجل من دون الاعتماد على السنة الحالية للجهاز أو منطقته الزمنية.
اختبارات انحدار التقويم
أنشئ حدودًا متوقعة وبيانات للسنة الكبيسة لحالات السنوات العادية والكبيسة والاستثناءات المئوية.
الأسئلة الشائعة
هل تستخدم الحاسبة السنة الحالية؟
لا. تتطلب تاريخ ISO صريحًا ولا تستخدم إلا السنة الموجودة في ذلك الإدخال، لذلك لا تؤثر الساعة الحالية في الإجابة.
ما صيغة التاريخ المطلوبة؟
استخدم YYYY-MM-DD بصرامة وبمكونات ثابتة العرض، مثل 2024-06-15. تُرفض الطوابع الزمنية والشرطات المائلة والمكونات المختصرة والتواريخ المستحيلة.
هل يدخل اليوم الأول واليوم الأخير ضمن المدة؟
نعم. يدخل 1 يناير و31 ديسمبر كلاهما في المدة، لذا يمكنك استخدامهما مباشرة في تصفية من تاريخ إلى تاريخ تشمل الطرفين، دون إضافة يوم أو حذفه.
هل تغيّر السنة الكبيسة أول يوم أو آخر يوم؟
لا. اليوم الإضافي يقع داخل فبراير، فيبقى 1 يناير و31 ديسمبر ثابتين. الذي يتغير هو عدد أيام السنة: 366 في السنة الكبيسة و365 في السنة البسيطة.
كيف أستخدم هذين التاريخين مع أوقات دقيقة؟
تعامل معهما على أنهما يومان في التقويم لا لحظتان، وطبّق قاعدة المنطقة الزمنية الخاصة بك. وإذا احتجت إلى مدة تنتهي قبل السنة التالية مباشرة، فاجعل 1 يناير من السنة التالية نهايةً لها.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/date/year-start-end \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-06-15"}'const res = await fetch("https://api.kit.forhosting.com/date/year-start-end", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-06-15"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/year-start-end",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-06-15"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/year-start-end", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-06-15"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-06-15"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/year-start-end", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"date": "2024-06-15"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.year_start_end",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
كيفية اشتقاق حدي السنة
يحدد الحساب days_in_year بقيمة 365 أو 366 ويعيد is_leap_year.
التحقق من الإدخال وحقول الاستجابة
يمثل first_day وlast_day تاريخي ISO شاملين صالحين لمرشحات النطاق. ويساعد is_leap_year وdays_in_year في إعداد الجداول السنوية أو تأكيد معالجة السنة الكبيسة من دون حساب ثانٍ. يتحول الإدخال الخاطئ إلى invalid_input مع تفسير موجز بدل الانتقال الصامت إلى شهر آخر. يشترك المتصفح وواجهة API في دالة solve النقية نفسها.
استخدام حدود السنة الميلادية بأمان
تعامل مع first_day وlast_day كتاريخين مدنيين لا كلحظتين زمنيتين. يكلف طلب API الناجح $0.002 لكل عنصر، بينما ينفذ المتصفح الحساب النقي نفسه محليًا مجانًا. وبغياب الشبكة والساعة والعشوائية والحالة المحلية الخفية، ينتج الإدخال نفسه دائمًا JSON مطابقًا.
أسئلة تقنية
هل أول يوم وآخر يوم مشمولان؟
نعم. يمثل first_day تاريخ 1 يناير ويمثل last_day تاريخ 31 ديسمبر من سنة الإدخال، وكلاهما يقع ضمن تلك السنة.
هل تغير السنة الكبيسة الحدين المعادين؟
لا. تضيف السنة الكبيسة 29 فبراير بينهما. يبقى الحدان 1 يناير و31 ديسمبر، بينما تصبح قيمة days_in_year هي 366.
ما تكلفة طلب API؟
يكلف طلب API الناجح $0.002 لكل عنصر. وينفذ إصدار المتصفح الحساب الحتمي نفسه محليًا مجانًا.