Utile v1 / Sarbatori
Zile lucrătoare într-un interval
Câte zile lucrătoare are un interval, cu defalcarea: zile calendaristice, weekenduri scoase, sărbători scoase. Pentru termene contractuale şi pentru planificare.
GET
https://oneapi.ro/api/utile/v1/sarbatori/zile-lucratoare
Parametri de interogare
NumeTipDescriereValori acceptate
taraobligatoriu
string
OBLIGATORIU. Codul țării sau al subdiviziunii.
max 12 car.
de_laopțional
string | null
Prima zi din interval, inclusiv. Implicit azi (ora României) — „câte zile lucrătoare mai sunt până la termen" se cere doar cu
pana_la.
ex. 2026-01-01ex. 2026-05-01ex. 2024-06-15
pana_laobligatoriu
string
OBLIGATORIU. Ultima zi din interval, inclusiv.
ex. 2026-12-31ex. 2027-12-31ex. 2026-05-31
Cum se comportă
- Defalcarea e făcută ca să poată fi verificată prin adunare: câmpul
verificareconține chiar egalitatea, scrisă. Dacă cifra pare greșită, se vede imediat unde. - Sărbătorile care cad în weekend NU se scad de două ori —
sarbatori_in_zile_lucratoarenumără doar pe cele care chiar iau o zi de lucru. Un total care le-ar amesteca n-ar mai putea fi verificat. - Pentru România, cifrele coincid cu cele din modulul Financiar: 252 de zile în 2024, 248 în 2025, 250 în 2026, 252 în 2027. Nu e o coincidență — e aceeași sursă de sărbători.
- Ambele capete sunt INCLUSIVE. Un interval de la 1 la 1 ianuarie are o zi calendaristică, nu zero.
- Fără
de_la, intervalul începe azi, inclusiv — deci azi se numără dacă e zi lucrătoare. Unpana_ladin trecut fărăde_ladă 422: intervalul ar fi negativ.
La ce folosește
- Calculezi normele de lucru ale unei luni sau ale unui an, pentru salarizare.
- Estimezi durata reală a unui proiect exprimat în zile lucrătoare.
- Compari doi ani ca să vezi de ce unul a avut capacitate de producție mai mică.
Structura răspunsului
Toate câmpurile de mai jos sunt în data.
CâmpTipDescriere
tara
string
Ţara la care se referă valoarea.
de_la
string
Începutul intervalului acoperit de răspuns.
pana_la
string
Sfârşitul intervalului acoperit de răspuns, inclusiv.
zile_lucratoare
integer
Rezultatul: zile care nu sunt nici weekend, nici sărbătoare nelucrătoare.
defalcare.calendaristice
integer
Toate zilele din interval, inclusiv capetele.
defalcare.weekend
integer
Câte cad în weekendul țării.
defalcare.sarbatori_in_zile_lucratoare
integer
Sărbători care cad în afara weekendului — doar acestea scad din total.
verificare
string
Egalitatea scrisă, ca să poți reface calculul.
zile_weekend
array
Zilele de weekend folosite, ca numere ISO.
sursa
string
De unde vin zilele, scris explicit.
verificat
boolean
true doar dacă sursa e textul legii.
Exemple de răspuns
GEThttps://oneapi.ro/api/utile/v1/sarbatori/zile-lucratoare?tara=RO&de_la=2026-01-01&pana_la=2026-12-31
{
"data": {
"tara": "RO",
"de_la": "2026-01-01",
"pana_la": "2026-12-31",
"zile_lucratoare": 250,
"defalcare": {
"calendaristice": 365,
"weekend": 104,
"sarbatori_in_zile_lucratoare": 11
},
"verificare": "365 − 104 − 11 = 250",
"zile_weekend": [
6,
7
],
"sursa": "art. 139 din Codul Muncii (Legea 53/2003), prin modulul Financiar",
"verificat": true
}
}
GEThttps://oneapi.ro/api/utile/v1/sarbatori/zile-lucratoare?tara=RO&pana_la=2027-12-31
{
"data": {
"tara": "RO",
"de_la": "2026-10-06",
"pana_la": "2027-12-31",
"zile_lucratoare": 312,
"defalcare": {
"calendaristice": 452,
"weekend": 128,
"sarbatori_in_zile_lucratoare": 12
},
"verificare": "452 − 128 − 12 = 312",
"zile_weekend": [
6,
7
],
"sursa": "art. 139 din Codul Muncii (Legea 53/2003), prin modulul Financiar",
"verificat": true
}
}
GEThttps://oneapi.ro/api/utile/v1/sarbatori/zile-lucratoare?tara=FR&de_la=2026-05-01&pana_la=2026-05-31
{
"data": {
"tara": "FR",
"de_la": "2026-05-01",
"pana_la": "2026-05-31",
"zile_lucratoare": 18,
"defalcare": {
"calendaristice": 31,
"weekend": 10,
"sarbatori_in_zile_lucratoare": 3
},
"verificare": "31 − 10 − 3 = 18",
"zile_weekend": [
6,
7
],
"sursa": "Yasumi (MIT) — calculat algoritmic",
"verificat": false
}
}
GEThttps://oneapi.ro/api/utile/v1/sarbatori/zile-lucratoare?tara=RO&pana_la=2024-06-15&de_la=2024-06-15
{
"data": {
"tara": "RO",
"de_la": "2024-06-15",
"pana_la": "2024-06-15",
"zile_lucratoare": 0,
"defalcare": {
"calendaristice": 1,
"weekend": 1,
"sarbatori_in_zile_lucratoare": 0
},
"verificare": "1 − 1 − 0 = 0",
"zile_weekend": [
6,
7
],
"sursa": "art. 139 din Codul Muncii (Legea 53/2003), prin modulul Financiar",
"verificat": true
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 404 | negasit | Țara nu e acoperită. |
| 422 | validare | pana_la e înaintea lui de_la (ori a zilei de azi, când de_la lipsește), sau formatul datei nu e AAAA-LL-ZZ. |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "validare",
"mesaj": "pana_la e înaintea lui de_la (ori a zilei de azi, când de_la lipsește), sau formatul datei nu e AAAA-LL-ZZ.",
"detalii": {
"tara": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}