روزهای کاری
شمارش روز بدون جمعه و اختیاری بدون تعطیلات نمونهٔ بورس.
جمعه همیشه حذف میشود. لیست تعطیل پیشنویس است.
روز کاری
۲۷
مرتبط
وقتی قرارداد میگوید «تحویل ظرف پانزده روز کاری» یا تیم عملیات میپرسد «بین این دو تاریخ چند روز بورس واقعاً باز بود؟»، شمارش سادهٔ تقویمی (تفاوت دو تاریخ) کافی نیست — باید جمعه و اغلب تعطیلات رسمی از میان بروند. ابزار روزهای کاری FinAI بین دو تاریخ جلالی میپیماید و روزهایی را که جمعه هستند یا در لیست تعطیلات نمونهٔ ۱۴۰۵ قرار دارند، نمیشمارد. محاسبه client-side است؛ لیست تعطیل پیشنویس است — قبل از اتکای حقوقی با جدول تعطیلات بورس و اعلام رسمی تطبیق دهید.
بازهٔ نیمهباز [شروع، پایان)
مدل FinAI: روز شروع در شمارش نیست اگر همان لحظه شروع کار باشد؛ iteration از start به end با شرط cur < end (day granularity). روز پایان هم شامل نمیشود. این convention رایج در «از فردا» و SLA فنی است — اگر قرارداد «شامل روز امضا» بخواهد، یک روز manual adjust کنید.
اگر end قبل از start باشد، ابزار بازه را swap میکند و همان count را برمیگرداند — count همیشه غیرمنفی.
جمعه در مدل ایران FinAI
در پیادهسازی jalali-moment با day()، ۵ = جمعه تعطیل هفتگی در نظر گرفته میشود. شنبه تا پنجشنبه (با این encoding) روز کاری پایهاند مگر تعطیل رسمی. این با «تقویم اداری بعضی شرکتها» که شنبه نیمهوقت است فرق دارد — FinAI شنبه را حذف نمیکند مگر در لیست holiday.
اگر SLA شما «شنبه هم تعطیل» است، یا holidays custom اضافه کنید (در UI فعلی preset 1405 است) یا خارج از FinAI iterate کنید.
سوئیچ تعطیلات نمونه ۱۴۰۵
دو حالت chip:
- اعمال: تاریخهای BOURSE_HOLIDAYS_1405 علاوه بر جمعه حذف میشوند (نوروز ۱–۴ فروردین، ۱۲–۱۳ فروردین، ۱۴–۱۵ خرداد، ۲۲ بهمن، ۲۹ اسفند نفت، …).
- فقط جمعه: هیچ تعطیل رسمی از لیست — فقط جمعهها skip.
جمعههای تقویمی جدا از جدول holiday هستند — جدول عمداً جمعه duplicate نمیکند.
پیشنویس بودن لیست
تعطیلات بورس هر سال با اعلام سازمان بورس و تقویم رسمی ممکن است جابهجا شود (مثلاً تعطیلات پیاپی نوروز). FinAI version-controlled list دارد برای demo و planning — نه legal calendar. برای دعوی حقوقی «روز کاری»، منبع رسمی بگیرید.
مثال مفهومی
از 1405/01/14 (چهارشنبه قبل نوروز) تا 1405/01/20: date-diff تقویمی حدود شش روز؛ business-days با holidays روشن کمتر — چون ۱–۴ فروردین و شاید جمعه بین بازه حذف میشوند. دقیق را فرم بزنید.
از 1405/01/15 تا 1405/02/15 یک ماه planning: برای capacity تیم settlement، business-days realisticتر از ۳۰ روز تقویمی است.
تفاوت با date-diff
date-diff = همه روزها. business-days = subset. همیشه business-days ≤ تقویمی equivalent در همان بازه (با همان inclusivity). برای «سن» یا «گارانتی تقویمی» date-diff؛ برای «T+2 settlement» business-days (با تعریف دقیق بورس که ممکن است lag جدا داشته باشد).
کاربرد در مالی
- وعده واریز سود نقدی: «۵ روز کاری پس از مجمع» — start = روز مجمع، end = start + window با business-days iterate (ابزار فعلی end را شما میدهید؛ برای forward date باید loop بیرون یا tool آینده).
- مهلت پاسخ شکایت: اداری بدون جمعه.
- backtesting: چند session معاملاتی بین دو تاریخ — تقریب با business-days + ساعات معاملات.
محدودیتهای آگاهانه
- تعطیلات ad-hoc (عزای عمومی یکباره) در preset نیست.
- بورس کالا یا فرابورس ساعت/تعطیل جدا — این مدل «پایهٔ جمعه + لیست نمونه سهام» است.
- نیمهروزهای معاملاتی (if any) بهصورت full day یا zero day مدل نشده — ponytail: granularity روز کامل.
- سال غیر ۱۴۰۵: holiday list باید update شود؛ business-days بدون holiday فقط جمعه را میزند.
زنجیره با جداول FinAI
مرجع انسانی تعطیل: تعطیلات بورس ۱۴۰۵. ساعات session: ساعات معاملات. diff خام: date-diff.
حریم
تاریخهای قرارداد در query URL — share با احتیاط.
برای auditor
reproduce: همان start/end در Excel با NETWORKDAYS equivalent (با فرض جمعه) و compare. با holidays، manual subtract listed dates in range.
شمارش معکوس deadline
اگر «۵ روز کاری بعد از 1405/03/01» میخواهید، از start iterate forward: هر روز business-days(start, candidate) تا برابر ۵ — candidate را پیدا کنید. UI فعلی count بین دو fixed date است؛ forward search در spreadsheet با business-days helper column.
تعطیلات پیاپی نوروز در planning
چهار روز ۰۱/۰۱–۰۴ در preset باعث میشود هر window که فروردین را cross کند steep drop در business-days ببیند — realistic برای بورس بسته.
قرارداد بینالمللی با طرف ایرانی
«Business day» در LMA sometimes London — این tool Iran Friday model است. contract law خارج از FinAI.
KPI تیم عملیات
«میانگین روز کاری resolve ticket» — end = close date، start = open؛ business-days نه date-diff اگر SLA کاری است.
تست regression
وقتی BOURSE_HOLIDAYS update شد، یک unit test: range شامل 1405/01/02 باید count را vs فقط جمعه کم کند.
شنبه در صنعت
کارخانه شنبه کار میکند ولی بورس باز است — business-days FinAI شنبه را میشمارد. اگر SLA «روز کاری کارخانه» است این tool wrong tool است.
Walk-through عددی بازهٔ نوروزی
شروع 1405/12/28، پایان 1405/02/05: در میانه ۰۱/۰۱–۰۴ و ۱۲–۱۳ فروردین و چند جمعه — business-days با holidays بسیار کمتر از date-diff. برای capacity «چند روز میتوانیم settle کنیم» realistic است.
T+ و settlement بورس
قواعد T+ رسمی سازمان مرجع است — business-days FinAI approximation برای internal planning است نه جایگزین TSE rule book.
Chip «فقط جمعه» کی مناسب است
قرارداد B2B بین دو private company که تعطیل رسمی را explicit exclude نکرده — فقط weekend Iran model. یا sensitivity: «worst case calendar» vs «Friday only».
Custom holiday list آینده
امروز preset 1405؛ اگر company shutdown خودش را دارد، holidays string را در fork spreadsheet emulate کنید تا با official list merge شود.
UI copy برای compliance
در report footer بنویسید: «شمارش روز کاری FinAI — پیشنویس تعطیل ۱۴۰۵ — غیررسمی».
الگوریتم iterate روز به روز (شفافیت)
از start clone میشود؛ while cur < end (day): اگر day-of-week ≠ جمعه و jDate در holidaySet نبود، count++. سپس cur += 1 day. holidaySet از map jDate strings preset. complexity O(n days) — برای بازهٔ چند ساله در browser still fine. swap start/end if reversed.
مثال: SLA وکیل و دادگاه
«پاسخ ظرف ۵ روز کاری» — اگر روز پنجم جمعه باشد، روز پنجم کاری Monday بعد است — iterate forward. FinAI count بین two dates fixed است؛ forward deadline manual.
pair با date-diff برای report
ستون A: date-diff calendar. ستون B: business-days same pair. ratio B/A نشان میدهد چقدر weekend/holiday dense — useful for ops capacity.
1405 holiday list echo
1405/01/01–04 نوروز، 01/12 جمهوری، 01/13 طبیعت، 03/14–15 خرداد، 11/22 انقلاب، 12/29 نفت — same as bourse-holidays table when chip on.
Capacity planning تیم support
اگر تیم در هر روز کاری ۵۰ تیکت میبندد، business-days بین sprint start و end × ۵۰ ≈ capacity — calendar diff overestimate میکند چون جمعهها و نوروز را شامل میشود. برای OKR فصلی، business-days realisticتر است.
Onboarding vendor «تحویل ۲۰ روز کاری»
از تاریخ PO، iterate forward ۲۰ business-days — end delivery date. chip holidays on اگر delivery به bourse calendar tie نیست ولی internal company calendar همان official است.
Double-count Friday و holiday
اگر 1405/01/03 جمعه هم باشد — در algorithm یک بار skip؛ holidaySet و day()=5 redundant safe.
Playbook عملیات بورس
تیم middle office: «چند session بین inflow و invest» — business-days بین تاریخ واریز و تاریخ target trade، با holidays on. T+ settlement رسمی را جایگزین نکند. اگر inflow جمعه است، اولین روز کاری شنبه در مدل FinAI شمارش میشود — جمعه skip. نوروز block: اگر window 1405/12/25–1405/02/10، count sharply lower — برای commit به client timeline realistic است.
Training slide یک خط
تقویمی = date-diff | کاری = business-days | تعطیل = bourse-holidays table | ساعت = trading-hours.
مثال عددی گامبهگام (مفهومی)
بازه 1405/01/11 (پنجشنبه) تا 1405/01/16 (سهشنبه): date-diff پنج روز تقویمی. business-days فقط جمعه: 1405/01/12 جمعه حذف → چهار روز کاری. اگر chip holidays روشن و 12 فروردین «جمهوری» باشد — 12 already holiday in list؛ if also Friday double skip. از 1405/03/13 تا 1405/03/16: 14–15 خرداد تعطیل preset — business-days ممکن است صفر یا یک depending start/end half-open. همیشه فرم را با start/end واقعی خودتان بزنید.
در گزارش ماهانه به هیئتمدیره: «تعداد روز کاری ماه» = business-days(اول ماه، اول ماه بعد) — با holidays on برای realism بورس. «تعداد روز تقویمی» = date-diff — دو KPI مختلف؛ قاطی نکنید.
اگر طرف قرارداد خارج از ایران است، تعریف business day London یا NY ممکن است — این ابزار Iran Friday + draft IR holidays است؛ در annex قرارداد بنویسید.
فرمول ذهنی برای مدیر پروژه
اگر date-diff بین دو milestone برابر D بود و در آن بازه H تعطیل رسمی preset و F جمعه (که با holiday overlap نکرد) دارید، business-days تقریباً D − H − F — ولی half-open interval و placement start/end دقیق را فقط فرم میدهد. برای commit به client، همیشه UI را با تاریخ واقعی بزنید.
در FinAI، chip «فقط جمعه» برای sensitivity analysis مفید است: «بدترین حالت فقط weekend» vs «با تعطیلات رسمی 1405». delta بین دو count نشان میدهد holiday impact چقدر است — برای risk report فصلی.
یادآوری inclusivity: روز شروع در count نیست؛ اگر SLA «از فردای امضا» است، start را فردا بگذارید. اگر «شامل روز امضا» است، یک روز تقویمی یا یک iterate manual اضافه کنید — متن قرارداد مرجع است.
برای portfolio manager: «چند روز معاملاتی تا پایان quarter» = business-days(امروز، آخر quarter) با holidays on — realisticتر از diff خام برای target rebalance.
در UI، متن کوچک «لیست تعطیل پیشنویس است» deliberate است — user بداند count بدون official calendar commit legal نیست.
جمعه در ایران در این مدل همیشه non-business است؛ شنبه تا پنجشنبه مگر در لیست تعطیل 1405.
برای وام و سپرده از اختلاف تقویمی استفاده کنید مگر بند «روز کاری» صریح باشد.
جمعبندی
روزهای کاری جمعه را همیشه حذف میکند و با یک کلیک تعطیلات پیشنویس ۱۴۰۵ را هم. بازه [شروع، پایان) است. sibling date-diff تقویمی کامل میدهد. legal advice نیست — با تقویم رسمی بورس sync کنید.