Calendarul unui an
Tabelul pe douăsprezece luni al unui an, dintr-o singură cerere: zile calendaristice, weekend,
sărbători, punţi, zile lucrătoare — plus unde cad sărbătorile şi punţile, nu doar câte sunt.
De ce e rută şi nu /zile-lucratoare chemat de douăsprezece ori: acolo întrebarea e „câte sunt
între două date", iar răspunsul un număr cu defalcare. Aici forma răspunsului e un tabel anual, iar
motivul pentru care cineva îl cere e să vadă distribuţia. În 2026, ianuarie are 18 zile lucrătoare
şi iulie are 23 — diferenţa nu se vede dintr-un total.
Punţile fac cifra pe sectorul public PROVIZORIE pentru anii viitori. Ele vin din hotărâri de
Guvern, iar pentru un an în care HG-ul n-a fost încă emis tabelul arată zero punţi — ceea ce nu
înseamnă că nu vor fi. Câmpul provizoriu o spune, iar punti_stabilite dă numărul celor
publicate. Un răspuns care ar da acelaşi număr pentru ambele sectoare fără să declare asta ar fi
folosit la planificat concedii pe o cifră care se mişcă.
Ambele totaluri vin oricum, zile_lucratoare_privat şi zile_lucratoare_public, ca diferenţa
dintre sectoare să nu ceară o a doua cerere. sector alege doar care dintre ele ajunge în câmpul
principal.
Defalcarea se verifică pe fiecare lună, nu doar pe an: calendaristice − weekend − sărbători în zile
lucrătoare − punţi = zile lucrătoare.
Parametri de interogare
AAAA (1990–2100). Fără el, anul curent.
1990 – 2100
privat (implicit) sau public. Diferă prin punţile de HG.
privatpublic
Cum se comportă
- Tabelul pe douăsprezece luni al unui an, dintr-o singură cerere: zile calendaristice, weekend, sărbători, punţi, zile lucrătoare — plus unde cad sărbătorile şi punţile, nu doar câte sunt.
- De ce e rută şi nu
/zile-lucratoarechemat de douăsprezece ori: acolo întrebarea e „câte sunt între două date", iar răspunsul un număr cu defalcare. Aici forma răspunsului e un tabel anual, iar motivul pentru care cineva îl cere e distribuţia. În 2026, ianuarie are 18 zile lucrătoare şi iulie are 23 — diferenţa nu se vede dintr-un total. - Punţile fac cifra pe sectorul public PROVIZORIE pentru anii viitori. Ele vin din hotărâri de Guvern, iar pentru un an în care HG-ul n-a fost încă emis tabelul arată zero punţi — ceea ce nu înseamnă că nu vor fi.
provizoriuo spune,punti_stabilitedă numărul celor publicate. Un răspuns care ar da acelaşi număr pentru ambele sectoare fără să declare asta ar fi folosit la planificat concedii pe o cifră care se mişcă. - Pentru anii încheiaţi cifra e definitivă şi diferenţa se vede: 2024 are 252 de zile lucrătoare pe privat şi 249 pe public, din trei punţi; 2025 are 248 şi 247, dintr-una singură.
- Ambele totaluri vin oricum —
zile_lucratoare_privatşizile_lucratoare_public— ca diferenţa dintre sectoare să nu ceară o a doua cerere.sectoralege doar care dintre ele ajunge în câmpul principal. - Defalcarea se verifică pe fiecare lună, nu doar pe an: calendaristice − weekend − sărbători în zile lucrătoare − punţi = zile lucrătoare. Punţile care cad în weekend sau peste o sărbătoare nu scad nimic, fiind deja numărate.
- O zi poate purta două sărbători — 1 iunie 2026 e şi Ziua Copilului, şi a doua zi de Rusalii. De aceea
sarbatorie o listă de ZILE, fiecare cu sărbătorile ei, nu o listă de sărbători. - Sărbătorile se calculează, nu se citesc dintr-un tabel, iar regulile sunt versionate pe anul intrării în vigoare — de aceea acoperirea e 1990–2100 fără date de import. Punţile, în schimb, sunt acte normative şi există doar de când au fost emise.
- Orele de muncă nu sunt aici: sunt la
/norma-lucru?luna=AAAA-LL, cu altă unitate şi cu convenţia de 8 ore declarată.
La ce folosește
- Planificarea unui an: unde cad sărbătorile şi punţile, lună cu lună.
- Norma de zile lucrătoare pentru bugetul de personal.
- Compararea sectorului privat cu cel public, fără două cereri.
Structura răspunsului
true când anul e curent sau viitor şi nu există încă nicio punte publicată — cifra pe public se poate schimba.
Exemple de răspuns
{
"data": {
"an": 2026,
"sector": "privat",
"zile_lucratoare": 250,
"total": {
"zile_calendaristice": 365,
"zile_weekend": 104,
"sarbatori_in_zile_lucratoare": 11,
"punti_hg_scazute": 0,
"zile_lucratoare_privat": 250,
"zile_lucratoare_public": 250
},
"punti_stabilite": 0,
"provizoriu": true,
"luni": [
{
"luna": 1,
"perioada": "2026-01",
"de_la": "2026-01-01",
"pana_la": "2026-01-31",
"zile_lucratoare": 18,
"defalcare": {
"zile_calendaristice": 31,
"zile_weekend": 9,
"sarbatori_in_zile_lucratoare": 4,
"punti_hg_scazute": 0
},
"zile_lucratoare_privat": 18,
"zile_lucratoare_public": 18,
"sarbatori": [
{
"data": "2026-01-01",
"sarbatori": [
{
"cod": "anul_nou_1",
"denumire": "Anul Nou",
"mobila": false
}
]
}
],
"punti": []
}
]
},
"meta": {
"temei": "Sărbătorile legale: art. 139 din Codul Muncii. Punţile: hotărâri de Guvern, act cu act.",
"nota_defalcare": "Pe fiecare lună: calendaristice − weekend − sărbători în zile lucrătoare − punţi = zile lucrătoare. Punţile care cad în weekend sau peste o sărbătoare nu scad nimic, fiind deja numărate.",
"nota_sector": "Punţile de HG se aplică, de regulă, doar instituţiilor publice. `zile_lucratoare` urmează `sector`; ambele totaluri vin oricum în răspuns.",
"nota_provizoriu": "Pentru 2026 nu există încă nicio punte publicată prin HG, deci cifra pe sectorul public coincide azi cu cea pe privat şi se poate schimba. Nu înseamnă că nu vor fi punţi.",
"nota_suprapuneri": "O zi poate purta două sărbători (1 iunie 2026: Ziua Copilului şi a doua zi de Rusalii). De aceea `sarbatori` e o listă de ZILE, fiecare cu sărbătorile ei.",
"sarbatorile_anului": "/financiar/v1/sarbatori?an=2026",
"puntile_anului": "/financiar/v1/punti?an=2026"
}
}
{
"data": {
"an": 2024,
"sector": "public",
"zile_lucratoare": 249,
"total": {
"zile_calendaristice": 366,
"zile_weekend": 104,
"sarbatori_in_zile_lucratoare": 10,
"punti_hg_scazute": 3,
"zile_lucratoare_privat": 252,
"zile_lucratoare_public": 249
},
"punti_stabilite": 3,
"provizoriu": false,
"luni": [
{
"luna": 1,
"perioada": "2024-01",
"de_la": "2024-01-01",
"pana_la": "2024-01-31",
"zile_lucratoare": 20,
"defalcare": {
"zile_calendaristice": 31,
"zile_weekend": 8,
"sarbatori_in_zile_lucratoare": 3,
"punti_hg_scazute": 0
},
"zile_lucratoare_privat": 20,
"zile_lucratoare_public": 20,
"sarbatori": [
{
"data": "2024-01-01",
"sarbatori": [
{
"cod": "anul_nou_1",
"denumire": "Anul Nou",
"mobila": false
}
]
}
],
"punti": []
}
]
},
"meta": {
"temei": "Sărbătorile legale: art. 139 din Codul Muncii. Punţile: hotărâri de Guvern, act cu act.",
"nota_defalcare": "Pe fiecare lună: calendaristice − weekend − sărbători în zile lucrătoare − punţi = zile lucrătoare. Punţile care cad în weekend sau peste o sărbătoare nu scad nimic, fiind deja numărate.",
"nota_sector": "Punţile de HG se aplică, de regulă, doar instituţiilor publice. `zile_lucratoare` urmează `sector`; ambele totaluri vin oricum în răspuns.",
"nota_suprapuneri": "O zi poate purta două sărbători (1 iunie 2026: Ziua Copilului şi a doua zi de Rusalii). De aceea `sarbatori` e o listă de ZILE, fiecare cu sărbătorile ei.",
"sarbatorile_anului": "/financiar/v1/sarbatori?an=2024",
"puntile_anului": "/financiar/v1/punti?an=2024"
}
}
{
"data": {
"an": 2024,
"sector": "privat",
"zile_lucratoare": 252,
"total": {
"zile_calendaristice": 366,
"zile_weekend": 104,
"sarbatori_in_zile_lucratoare": 10,
"punti_hg_scazute": 3,
"zile_lucratoare_privat": 252,
"zile_lucratoare_public": 249
},
"punti_stabilite": 3,
"provizoriu": false,
"luni": [
{
"luna": 1,
"perioada": "2024-01",
"de_la": "2024-01-01",
"pana_la": "2024-01-31",
"zile_lucratoare": 20,
"defalcare": {
"zile_calendaristice": 31,
"zile_weekend": 8,
"sarbatori_in_zile_lucratoare": 3,
"punti_hg_scazute": 0
},
"zile_lucratoare_privat": 20,
"zile_lucratoare_public": 20,
"sarbatori": [
{
"data": "2024-01-01",
"sarbatori": [
{
"cod": "anul_nou_1",
"denumire": "Anul Nou",
"mobila": false
}
]
}
],
"punti": []
}
]
},
"meta": {
"temei": "Sărbătorile legale: art. 139 din Codul Muncii. Punţile: hotărâri de Guvern, act cu act.",
"nota_defalcare": "Pe fiecare lună: calendaristice − weekend − sărbători în zile lucrătoare − punţi = zile lucrătoare. Punţile care cad în weekend sau peste o sărbătoare nu scad nimic, fiind deja numărate.",
"nota_sector": "Punţile de HG se aplică, de regulă, doar instituţiilor publice. `zile_lucratoare` urmează `sector`; ambele totaluri vin oricum în răspuns.",
"nota_suprapuneri": "O zi poate purta două sărbători (1 iunie 2026: Ziua Copilului şi a doua zi de Rusalii). De aceea `sarbatori` e o listă de ZILE, fiecare cu sărbătorile ei.",
"sarbatorile_anului": "/financiar/v1/sarbatori?an=2024",
"puntile_anului": "/financiar/v1/punti?an=2024"
}
}
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. |
| 422 | validare | An în afara intervalului 1990–2100, ori sector în afara listei. |
| 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": "An în afara intervalului 1990–2100, ori sector în afara listei.",
"detalii": {
"an": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}