حاسبة ميزانية وقت الرحلة
يوم من 14 ساعة فيه ساعتان للتنقل وساعتان للراحة يترك 10 ساعات للأنشطة، فيتسع متحف وسوق وحديقة ونزهة قبل العشاء مجموعها 7.5 ساعات مع فائض 2.5 ساعة. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الساعات المتاحة
- 14
- ساعات التنقل
- 2
- ساعات الراحة
- 2
- الساعات المحجوزة
- 4
- الوقت المتبقي للأنشطة
- 10
- ساعات الأنشطة المخطط لها
- 7.5
- ساعات الأنشطة الموصى بها
- 7.5
تفشل أيام السفر عندما تبدو الخريطة سخية والساعة ليست كذلك. قد يكون المتحف والسوق والمطلّ وحجز العشاء معقولاً كلٌّ على حدة، ثم ينهار اليوم بعد إعادة زمن المشي وتحويلات المترو ووجبة حقيقية. تقبل حاسبة ميزانية وقت برنامج الرحلة هذه ميزانية ساعات يومية موجبة، وساعات تنقّل محجوزة، وساعات راحة محجوزة، وقائمة مرتّبة من أنشطة مسماة بساعات مخطّطة، ثم تخبركم إن كان ذلك اليوم ما يزال يتّسع. يُعامل التنقّل والراحة ككلف ثابتة من الرتبة الأولى؛ وتصير الساعات المتبقية غلاف الأنشطة. إذا فاضت المحطات المخطّطة عن ذلك الغلاف، يصغّر المحرّك كل نشاط بنفس المعامل حتى يعود الخطة الموصى بها إلى جمع النافذة المتبقية.
الوقت الثابت أولًا ثم الزيارات
يفشل يوم الرحلة حين تبدو الخريطة سخية بينما الساعة ليست كذلك. فقد يكون المتحف والسوق ونقطة المشاهدة والعشاء المحجوز معقولة كلٌّ على حدة، ثم لا تتسع معًا بعد إضافة المشي وتبديل خطوط المترو ووجبة حقيقية. لذلك تحجز الحاسبة أولًا ساعات التنقل والراحة لأنها ليست اختيارية، ولا يبقى للأنشطة إلا ما يتبقى بعدها. فمع 14 ساعة متاحة وساعتين للتنقل وساعتين للراحة، تكون نافذة الزيارات 10 ساعات. وإذا كان مجموع المحطات المخطط لها أقل، ترى الوقت الفائض، وإن كان أكثر ترى مقدار التجاوز.
عندما لا يتسع اليوم
إذا تجاوزت الأنشطة النافذة المتاحة، لا تقبل الحاسبة الحجز الزائد بصمت، بل تقلص كل المحطات بالمعامل نفسه حتى يساوي البرنامج المقترح الوقت المتبقي تمامًا مع الحفاظ على النسب بينها. ويفيد ذلك في عطلة نهاية أسبوع في مدينة، أو في جدول مجموعة سياحية بالحافلة، أو في لقاء شركة يضم ورش عمل وغداء ونقلًا إلى الفندق. والخطأ المعتاد هو تكديس ست معالم في يوم أنفق ثلاث ساعات في القطارات. راجع التجاوز قبل شراء تذاكر بمواعيد محددة، فحذف محطة واحدة غالبًا أفضل من تقصيرها كلها.
أين تثبت ميزانية وقت البرنامج اليومية نفعها
يعيد مسار الفيض توصية مصغّرة بدل حجز زائد صامت، وهذا ما يحتاجه جدول يواجه الضيف قبل طبع أي لوحة. يلتقط من يبني حلقة ظهرية الخطأ الكلاسيكي في رصّ ست معالم في يوم أنفق ثلاث ساعات سلفاً على القطارات. أبقوا الطلبات صغيرة، وثبّتوا الساعات الموصى بها الذهبية في الاختبارات، فتحصلون على خطط يوم قابلة لإعادة الإنتاج لأدوات الحجز وأدوات الدليل وعُمّال الحافة دون إقامة محرّك توجيه.
اقرنوا هذا الموزّع بمساعدي زمن المشي أو المسافة متعددة المحطات عندما تعرفون الدقائق بين الدبابيس وتحتاجون فقط أن يجتمع اليوم. يستطيع مسافرو الترفيه لصق سبت مسودة وقراءة الهامش أو الفيض بنظرة واحدة وإسقاط محطة قبل حجز تذاكر موقتة لن يبلغوها.
حالات الاستخدام
تخطيط يوم استراحة حضرية
احجزوا أولاً ساعات المشي والطعام، ثم انظروا إن كان المتحف والسوق والمطلّ ما تزال تتّسع في نافذة المعاينة المتبقية.
مسودات جداول للجولات والجماعات
صغّروا يوم حافلة مثقلاً حتى تبقى أوقات المحطات المطبوعة داخل غلاف التنقّل والراحة الذي يملكه الدليل فعلاً.
الأسئلة الشائعة
كيف تُوزَّع ميزانية وقت البرنامج اليومية؟
يُحجز التنقّل والراحة أولاً. الساعات المتبقية غلاف الأنشطة. إن اتّسعت المحطات احتفظت بساعاتها والهامش هو الباقي. إن فاضت صُغّر كل نشاط بـ remaining / المجموع المخطّط.
هل يفشل اليوم الفائض، أم يعيد خطة؟
ينجح بحالة status overflow و fits خاطئ وساعات موصى بها مصغّرة إلى الغلاف المتبقي.
ماذا تعني حالة status tight؟
عاملوه كيوم ممتلئ فيه مجال ضيق لخروج متأخر من متحف أو ترام فائت.
ماذا أحسب ضمن التنقل وماذا ضمن الراحة؟
يشمل التنقل المشي بين المحطات والمترو وسيارات الأجرة والوقت الضائع في طوابير التذاكر. وتشمل الراحة الوجبات وفنجان قهوة جالسًا وتسجيل الوصول في الفندق والاستراحات التي تحتاجها فعلًا. ويُطرح الاثنان من اليوم قبل أي نشاط.
هل تُحترم أولوياتي عند تقليص يوم مزدحم؟
تُحترم النسب: تتقلص كل الأنشطة بالمعامل نفسه. فالكاتدرائية ذات الساعات الأربع بجانب متحف ذي ساعتين تحتفظ بضعف الوقت، لذا احذف أنت محطة إذا كانت إحداها أهم عندك.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/travel/itinerary-time-budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"available_hours":14,"transit_hours":2,"rest_hours":2,"activities":[{"name":"Museum","hours":3},{"name":"Market","hours":1.5},{"name":"Park","hours":2},{"name":"Dinner walk","hours":1}]}'const res = await fetch("https://api.kit.forhosting.com/travel/itinerary-time-budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"available_hours": 14,
"transit_hours": 2,
"rest_hours": 2,
"activities": [
{
"name": "Museum",
"hours": 3
},
{
"name": "Market",
"hours": 1.5
},
{
"name": "Park",
"hours": 2
},
{
"name": "Dinner walk",
"hours": 1
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/itinerary-time-budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"available_hours": 14,
"transit_hours": 2,
"rest_hours": 2,
"activities": [
{
"name": "Museum",
"hours": 3
},
{
"name": "Market",
"hours": 1.5
},
{
"name": "Park",
"hours": 2
},
{
"name": "Dinner walk",
"hours": 1
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/itinerary-time-budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"available_hours":14,"transit_hours":2,"rest_hours":2,"activities":[{"name":"Museum","hours":3},{"name":"Market","hours":1.5},{"name":"Park","hours":2},{"name":"Dinner walk","hours":1}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"available_hours":14,"transit_hours":2,"rest_hours":2,"activities":[{"name":"Museum","hours":3},{"name":"Market","hours":1.5},{"name":"Park","hours":2},{"name":"Dinner walk","hours":1}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/itinerary-time-budget", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"available_hours": 14,
"transit_hours": 2,
"rest_hours": 2,
"activities": [
{
"name": "Museum",
"hours": 3
},
{
"name": "Market",
"hours": 1.5
},
{
"name": "Park",
"hours": 2
},
{
"name": "Dinner walk",
"hours": 1
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.itinerary_time_budget",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يعود الهامش والفيض والاستخدام وعلامة fits مع الساعات الموصى بها لكل صف، فيشترك المخطّط البشري وعميل API في حساب واحد. الميزانيات الصفرية أو السالبة، والتنقّل أو الراحة السالبان، والزوج المحجوز الذي يتجاوز اليوم سلفاً تفشل بـ invalid_input بدل اختراع جدول.
كيف يقلّص التنقّل والراحة المحجوزان غلاف الأنشطة
تعامل ميزانية وقت البرنامج نافذة اليقظة كغلاف صارم لا كقائمة أمنيات. يُطرح التنقّل والراحة أولاً لأنهما ليسا اختياريين في يوم واقعي. يحتفظ كل نشاط باسم ورقم ساعات مخطّطة حتى يبقى مقطع اللوفر وسوق ونزهة نهرية متمايزة. الساعات المخطّطة المتساوية تبقى متساوية بعد التصغير؛ وكاتدرائية من أربع ساعات بجانب متحف من ساعتين تحفظ النسبة اثنين إلى واحد. يمتصّ غبار الفاصلة العائمة في آخر نشاط مخطّط موجب حتى تجتمع الساعات الموصى بها تماماً مع الحوض المتبقي في يوم فيض. الحقل available_hours هو ذلك الغلاف: أربع عشرة ساعة من الإفطار إلى الفندق، أو عشر ساعات بين انطلاق متأخر وحجز عشاء. المشي بين المتاحف، وقفزة المترو، وسيارة الأجرة إلى المطلّ، والدقائق الضائعة عند الشبابيك تعيش في transit_hours. الوجبات وقهوة جلوساً وتسجيل الوصول إلى الفندق والاستراحة التي يحتاجها المسافر حقاً تعيش في rest_hours. مجموعهما reserved_hours. وما يبقى هو remaining_for_activities، الحوض الوحيد الذي يجوز للمحطات المخطّطة إنفاقه. عندما لا يتجاوز المجموع المخطّط الحوض المتبقي، تساوي الساعات الموصى بها الساعات المخطّطة ويكون slack_hours هو الباقي غير المستخدم. عندما يكون المجموع المخطّط أكبر، يُصغَّر كل نشاط بـ remaining_for_activities مقسوماً على المجموع المخطّط حتى يُغلق اليوم الموصى به. قد يتجاوز الاستخدام مئة في المئة عندما يتخطى committed_hours حسب الخطة الميزانية؛ تلك إشارة إلى القطع لا إلى ادّعاء أن الساعة تمتد.
عقد الإدخال وشكل الاستجابة وسلوك الخطأ
الحقل activities مصفوفة غير فارغة من كائنات، لكل منها name غير فارغ و hours منتهٍ غير سالب، وبحدٍّ أقصى خمسين صفاً على مسار parse المجاني هذا. صلوا نموذج المتصفح المجاني بالتخطيط البشري، واستدعوا العقد نفسه من بانٍ للرحلات عندما تحتاج الأتمتة الأرقام ذاتها. أرسلوا بـ POST جسماً JSON بأربعة حقول إلزامية. الحقل available_hours عدد منتهٍ أكبر قطعاً من الصفر وبحدٍّ أقصى مئة وثمانٍ وستين، يكفي ليوم طويل أو غلاف قصير لعدة أيام. الحقلان transit_hours و rest_hours منتهيان وغير سالبين، وكلٌّ منهما محدود أيضاً بمئة وثمانٍ وستين. يجب ألا يتجاوز مجموعهما available_hours؛ الزوج المحجوز الذي يلتهم الميزانية كلها وزيادة يفشل بـ invalid_input لأنه لا يبقى غلاف أنشطة نزيه للتوزيع. الحقول الناقصة والقوائم الفارغة والصفوف غير الكائنية والأسماء البيضاء والأعداد غير المنتهية والساعات السالبة والميزانية المتاحة الصفرية أو السالبة تفشل كلها بـ invalid_input ولا تُفوتر. عند النجاح يعيد الجسم مدخلات الساعات الثلاث ويبلّغ reserved_hours و remaining_for_activities و planned_activity_hours و recommended_activity_hours و committed_hours و slack_hours و overflow_hours وعلَماً منطقياً fits وحالة status من fits أو tight أو overflow و utilization_percent و scale_factor و activity_count. يحمل كل صف نشاط index و name و planned_hours و recommended_hours و share_of_activities و percent_of_day. القيمة Method هي reserve_then_scale. وتعيد Formula أن remaining يساوي available ناقص transit ناقص rest، وأن recommended_i يساوي planned_i مضروباً في أصغر الواحد و remaining على المجموع المخطّط. اليوم tight يوم يتّسع وهامشه عشرة في المئة من available_hours على الأكثر. تستخدم استدعاءات API الناجحة السعر الأساسي المنشور $0.002 لكل عنصر؛ وإخفاقات التحقق لا تستهلك الرصيد المدفوع مسبقاً.
أين تثبت ميزانية وقت البرنامج اليومية نفعها
يستخدم منظّمو الرحلات حاسبة ميزانية وقت برنامج الرحلة حتى يصمد قالب استراحة حضرية أمام نافذة ضوء شتوية أقصر: أبقوا المحطات المخطّطة ذاتها، وارفعوا transit_hours عندما يمشي الجمع أبطأ، ثم أعيدوا التشغيل. يحجز منظّمو الخلوات المؤسسية الغداء وحافلة الفندق كـ rest و transit ثم ينظرون إن كانت ثلاث ورش ما تزال تتّسع في يوم من عشر ساعات. ولأن التنفيذ parse خالص من المستوى A، تكلف كل دعوة ناجحة السعر الأساسي المنشور $0.002 بلا رموز نموذج ولا شبكة صادرة.
حالات التكامل
أتمتة بناة الرحلات والأدلة
استدعوا عقد الحجز ثم التصغير نفسه من ودجة حجز حتى لا يختلف الخطة المنشورة و API على الهامش.
أسئلة تقنية
ماذا لو تجاوز التنقّل زائد الراحة اليوم سلفاً؟
تفشل المهمة بـ invalid_input. لا يجوز أن يتجاوز التنقّل والراحة المحجوزان available_hours، لأنه لا يبقى غلاف أنشطة نزيه للتوزيع.
كم تكلفة حاسبة ميزانية وقت برنامج الرحلة؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقاً بسعر $0.002 لكل استدعاء ناجح؛ والإدخال غير الصالح لا يُفوتر.