Jinsi ya Kuhesabu Wiki za Kazi Kati ya Tarehe Mbili (Na Kwa Nini Ni Ngumu Zaidi Kuliko Inavyoonekana)
Una tarehe mbili na unahitaji kujua ni wiki ngapi za kazi ziko kati yao. Inaonekana kama tatizo la sekunde tano. Gawa siku kwa 7, labda punguza wikiendi chache — imeisha.
Lakini sivyo, kwa sababu “wiki ya kazi” si istilahi yenye ufafanuzi mmoja sahihi. Kulingana na unachohesabu — kipindi cha notisi, ratiba ya mradi, stahili ya likizo, muda wa mkataba — njia sahihi ni tofauti, na kutumia njia isiyo sahihi kunaweza kukukosesha siku kwa namna inayoweza kuwa muhimu kisheria au kifedha.
“Wiki ya Kazi” Ni Nini Haswa?
Kwa kawaida, wiki ya kazi ina maana ya siku tano: Jumatatu hadi Ijumaa. Lakini kuna hali za pembeni zinazofaa kujua:
- Baadhi ya sekta na nchi hutumia wiki ya kazi ya siku 6 (Jumatatu–Jumamosi)
- Baadhi ya majukumu yana wiki ya kazi iliyobanwa ya siku 4
- Mashariki ya Kati kwa jadi hutumia Jumapili–Alhamisi, ingawa nchi nyingi zimehamia Jumatatu–Ijumaa
- Wafanyakazi wa muda (part-time) wanaweza kuwa na wiki za kazi za siku 2, 3, au 4
Kwa sehemu iliyobaki ya makala hii, “wiki ya kazi” inamaanisha wiki ya kawaida ya Jumatatu–Ijumaa isipokuwa itasemwa vingine. Mbinu zinajumlisha kwa urahisi ukishajua siku sahihi za kazi kwa hali yako.
Njia 1: Wiki Kamili za Kazi
Tafsiri rahisi zaidi: ni vizuizi vingapi kamili vya Jumatatu hadi Ijumaa vinatoshea kati ya tarehe mbili?
Hii ndiyo mara nyingi watu wanamaanisha wanapouliza “hiyo ni notisi ya wiki ngapi?” Kipindi cha notisi cha wiki 4 kinamaanisha vizuizi 4 kamili vya Jumatatu–Ijumaa — siku 20 za kazi — bila kujali tarehe ya kuanza ipo katikati ya wiki.
Hesabu:
1. Hesabu jumla ya siku za kalenda kati ya tarehe mbili 2. Ondoa wikiendi: kila kizuizi kamili cha siku 7 kina siku 2 za wikiendi 3. Shughulikia wiki zisizo kamili mwanzoni na mwishoni
Kwa vitendo ni rahisi zaidi kuhesabu siku za kazi moja kwa moja na kugawanya kwa 5:
working_weeks = working_days / 5
ambapo working_days ni idadi ya siku za Jumatatu–Ijumaa kati ya tarehe mbili.
Mfano: Aprili 7 (Jumatatu) hadi Mei 2 (Ijumaa)
- Siku za kalenda: 25
- Wikiendi ndani ya kipindi: Jumamosi 4 + Jumapili 4 = siku 8
- Siku za kazi: 25 − 8 = 17... subiri, hiyo si sahihi.
Njia sahihi: hesabu Jumatatu hadi Ijumaa kwa kuzijumuisha:
- Wiki 1: Apr 7–11 (siku 5)
- Wiki 2: Apr 14–18 (siku 5)
- Wiki 3: Apr 21–25 (siku 5)
- Wiki 4: Apr 28–Mei 2 (siku 5)
Jumla: siku 20 za kazi = wiki 4 za kazi kabisa.
Kwa kuwa mfano unaanza Jumatatu na unaisha Ijumaa, matokeo yanakuwa safi. Kuanzia au kumalizia katikati ya wiki kunatoa matokeo ya sehemu ya wiki, na hapo ndipo njia inayofuata inasaidia.
Njia 2: Siku za Kazi Zilizogawanywa kwa 5
Kwa matumizi mengi ya vitendo — kupanga miradi, makadirio ya ratiba, hesabu za uwezo (capacity) — huhitaji wiki kamili. Unahitaji siku za kazi, kisha unaonyesha matokeo kama wiki na siku.
Fomula:
total_working_days = (full_weeks × 5) + working_days_in_partial_week
weeks = floor(total_working_days / 5)
remaining_days = total_working_days mod 5
Mfano: Machi 18 (Jumatano) hadi Aprili 11 (Ijumaa)
Hesabu siku za kazi:
- Mar 18 (Wed) hadi Mar 21 (Fri): siku 4
- Mar 24–28: siku 5
- Mar 31–Apr 4: siku 5
- Apr 7–11: siku 5
Jumla: siku 19 za kazi = wiki 3 na siku 4.
Njia hii ni sahihi kwa ratiba za miradi ambapo unafanya kazi na uwezo kwa siku, si wiki za kalenda.
Njia 3: Upana wa Wiki za ISO
Wakati mwingine “wiki ngapi kati ya” inamaanisha: tofauti ya nambari za wiki za ISO ni nini?
Mfano: Tukio linaendelea kutoka ISO Week 10 hadi ISO Week 23. Huo ni muda wa wiki 13 za ISO.
Hesabu:
week_span = (end_iso_year × 52.18) + end_iso_week − (start_iso_year × 52.18) + start_iso_week
Kwa vitendo, kwa tarehe ndani ya mwaka huo huo:
week_span = end_iso_week − start_iso_week
Kwa tarehe zinazovuka mpaka wa mwaka, unahitaji kujua kama mwaka wa kuanzia ulikuwa na wiki 52 au 53:
week_span = (52_or_53_for_start_year − start_iso_week) + end_iso_week
Njia hii inafaa kwa ratiba za matangazo (broadcast), upangaji wa rejareja, na mifumo inayopanga kazi kwa nambari ya wiki ya ISO badala ya siku za kazi.
Tatizo la Kuhesabu Kwa Kujumuisha Tarehe (Inclusivity)
Chanzo kimoja cha makosa kinachotokea mara nyingi: kuhesabu tarehe ya kuanza, tarehe ya kuisha, zote mbili, au hakuna.
“Notisi ya wiki 4 kuanzia leo” inaweza kumaanisha:
- wiki 4 kuanzia leo, ambapo leo ni siku ya 1 (kuanza kujumuishwa): kipindi kinaisha siku ileile ya wiki, wiki 4 baadaye
- wiki 4 baada ya leo (kuanza kutokuhesabiwa): kipindi kinaisha siku 1 baadaye kuliko hapo juu
Sheria ya ajira katika nchi nyingi hueleza hili wazi. Sheria ya ajira ya Uingereza huhesabu notisi kuanzia siku baada ya notisi kutolewa. Marekani hutofautiana kulingana na mkataba.
Tofauti ni siku moja. Mara nyingi hilo halina madhara. Lakini kwenye migogoro ya ajira au kusitisha mikataba, linaweza kuwa muhimu.
Kawaida salama: eleza kila mara “wiki X za kazi kuanzia [tarehe], inclusive/exclusive.” Usiiache iwe yenye utata.
Likizo za Umma: Hesabu Ambayo Watu Wengi Husahau
Hesabu za wiki ya kazi zisizozingatia likizo za umma kwa ufafanuzi ni makosa — zitahesabu siku za kazi zaidi kuliko zilivyo.
Changamoto: likizo za umma si za kiwango kimoja. Zinatofautiana kwa:
- Nchi (Krismasi ni Desemba 25 nchini Uingereza; si likizo ya umma Japani)
- Mkoa ndani ya nchi (majimbo ya Marekani yana likizo tofauti; England na Scotland zina bank holidays tofauti)
- Mwaka (sikukuu zinazohama kama Pasaka hubadilika kila mwaka)
- Mkataba wa ajira (kazi nyingine zina likizo za ziada; baadhi ya wafanyakazi wa umma hufuata tarehe tofauti)
Kwa makadirio ya haraka — “hiyo ni kama wiki 6 za kazi” — kupuuza likizo ni sawa. Kwa usahihi wa juu — tarehe za mwisho za mikataba, notisi, muda wa kisheria — lazima uondoe likizo husika.
Hakuna kikokotoo kinachoweza kufanya hili kiotomatiki bila kujua mamlaka yako na mwaka husika. Kikokotoo cha siku kati ya tarehe kinakupa idadi ya siku za kazi bila wikiendi; kisha unaondoa likizo za umma za eneo lako kwa mkono.
Makadirio ya kusaidia kwa Uingereza: kuna takriban bank holidays 8 kwa mwaka, karibu 1.6 kwa mwezi. Kwa hesabu ya miezi 3 hiyo ni takriban likizo 5 za kuondoa. Kwa likizo za shirikisho za Marekani: 11 kwa mwaka, karibu 0.9 kwa mwezi.
Vipindi vya Notisi: Jinsi Hesabu Inavyofanya Kazi Kwa Uhalisia
Mikataba ya ajira huandika notisi kama wiki au miezi. Kubadilisha haya kuwa siku za kazi ndiko makosa hutokea mara nyingi.
“Notisi ya wiki 4” inamaanisha wiki 4 za kalenda (siku 28), si 4 × 5 = siku 20 za kazi. Ikiwa notisi inatolewa Jumanne, inaendelea siku 28 za kalenda — zikijumuisha wikiendi. Siku ya mwisho ya notisi ni Jumanne wiki 4 baadaye.
Hii huwashangaza watu kwa sababu wanatarajia “wiki 4” iwe siku 20 za kazi. Sivyo — inamaanisha siku 28 za kalenda, na wikiendi ndani yake bado huhesabika kama sehemu ya notisi hata kama huzifanyi kazi.
“Notisi ya mwezi 1” si sahihi zaidi. Mwezi mmoja kutoka Januari 15 ni Februari 15. Mwezi mmoja kutoka Januari 31 ni Februari 28 (au 29 katika mwaka wa kabisat). Idadi ya siku za kalenda hutofautiana kutoka 28 hadi 31. Idadi ya siku za kazi ndani ya mwezi huo hutofautiana kutoka 20 hadi 23.
Wiki za kazi vs wiki za kalenda kwenye mikataba:
Ikiwa mkataba unasema “notisi ya wiki 4 za kazi,” hiyo ni siku 20 za kazi — Jumatatu hadi Ijumaa tu. Wikiendi hazihesabiwi. Katika hali hiyo, notisi inayoanza Jumanne itaendelea siku 20 za kazi na itaisha wiki kadhaa za kalenda baadaye kulingana na ni wikiendi ngapi zipo ndani ya kipindi.
Daima angalia kama mkataba wako unasema “weeks” au “working weeks.” Tofauti inaweza kuwa siku 8–10 katika kipindi cha kawaida cha notisi.
Ratiba za Miradi: Wiki za Juhudi dhidi ya Wiki za Kalenda
Katika usimamizi wa miradi, “wiki 3 za kazi” na “wiki 3 za kalenda” si kitu kimoja.
Wiki 3 za juhudi kwa uwezo kamili = siku 15 za kazi kwa mtu. Ikiwa kazi ni wiki 3 za juhudi kwa mtu mmoja anayefanya kazi full time, inachukua wiki 3 za kalenda. Ikiwa watu wawili wanashiriki, inachukua wiki 1.5 za kalenda. Ikiwa mtu mmoja yuko 50% ya uwezo, inachukua wiki 6 za kalenda.
Wiki 3 za kalenda = siku 15 za kazi ukidhani hakuna likizo, hakuna mtu wa muda, na hakuna gharama ya kubadili muktadha (context-switching).
Tofauti hii ni muhimu unapopanga tarehe za utoaji. Ukimwambia mshikadau kwamba kipengele kitachukua “wiki 3” na unamaanisha wiki za kazi kwa 80% ya uwezo huku kukiwa na bank holiday katikati, tarehe ya mwisho ya kalenda itakuwa tofauti sana na wanavyofikiria.
Unaponukuu ratiba:
- Taja siku za kazi, si wiki, kwa kazi fupi kuliko mwezi
- Taja tarehe ya mwisho ya kalenda kama ukaguzi wa mantiki
- Taja wazi likizo zozote ndani ya kipindi
Kuhesabu Wiki za Kazi Kwa Msimbo
Python:
from datetime import date, timedelta
def working_days(start: date, end: date) -> int:
total = 0
current = start
while current <= end:
if current.weekday() < 5: # 0=Mon, 4=Fri
total += 1
current += timedelta(days=1)
return total
def working_weeks(start: date, end: date) -> float:
return working_days(start, end) / 5
# Example
start = date(2026, 4, 7)
end = date(2026, 5, 2)
print(working_days(start, end)) # 20
print(working_weeks(start, end)) # 4.0
Kwa vipindi virefu, njia ya haraka zaidi hutumia hisabati ya modulo ili kuepuka kuzunguka (loop):
def working_days_fast(start: date, end: date) -> int:
days = (end - start).days + 1
full_weeks, remainder = divmod(days, 7)
working = full_weeks * 5
# Count working days in the partial week
start_dow = start.weekday() # 0=Mon
for i in range(remainder):
if (start_dow + i) % 7 < 5:
working += 1
return working
JavaScript:
function workingDays(start, end) {
let count = 0
const current = new Date(start)
while (current <= end) {
const day = current.getDay()
if (day !== 0 && day !== 6) count++ // 0=Sun, 6=Sat
current.setDate(current.getDate() + 1)
}
return count
}
function workingWeeks(start, end) {
return workingDays(start, end) / 5
}
SQL (PostgreSQL):
-- Working days between two dates (excluding weekends)
SELECT
(EXTRACT(DOW FROM end_date) - EXTRACT(DOW FROM start_date))::int +
((end_date - start_date) / 7) * 5 +
CASE WHEN EXTRACT(DOW FROM start_date) = 0 THEN 1 ELSE 0 END +
CASE WHEN EXTRACT(DOW FROM end_date) = 6 THEN -1 ELSE 0 END
AS working_days
FROM (SELECT DATE '2026-04-07' AS start_date, DATE '2026-05-02' AS end_date) t;
Marejeo ya Haraka
| Unachotaka | Njia |
|---|---|
| Muda wa notisi | Siku za kalenda (wikiendi huhesabika) |
| Uwezo wa kazi wa mradi | Siku za kazi (Jumatatu–Ijumaa), gawanya kwa 5 kupata wiki |
| Upangaji wa broadcast/rejareja | Upana wa wiki za ISO |
| Stahili ya likizo | Siku za kazi, ondoa likizo za umma |
| Tarehe za mwisho za mikataba | Siku za kalenda isipokuwa mkataba useme “working days” |
Kikokotoo cha siku kati ya tarehe kinaonyesha siku za kalenda na siku za kazi kwa kipindi chochote — ni muhimu kama mwanzo kabla ya kurekebisha kwa likizo za umma katika mamlaka yako.


