A programozó munkája a legkönnyebb /3

`cronolog` barátunknak azt mondtam, hogy hetente kezdjen új fájlt: log.%Y_%W. A derék program most is írja a log.2024_53 nevű fájlt. (Természetesen el lehet rontani a dolgot, ha hónapot és hetet is teszünk a mintába, akkor lesz belőle 2025 nulladik hete.)

Hozzászólások

Végül is logikus. Ez a hét tavaly kezdődött, de ez a hónap idén... Érdekes, hogy egy ilyen látszólag egyszerű kérdés néha nem is annyira egyszerű :)

Van ugye az ISO het szamitas, illetve vannak helyi elteresek (mert miert ne).

Nalad hogyan kene mukodnie? Ehhez kepest hogy van beallitva? A beallitashoz tartja magat a cronlog?

Szerkesztve: 2025. 01. 02., cs – 11:07

Ez azért van, mert 2024 53-ik hete van a C szerint (nem ISO hetet használ a %Y és %W).
Ha ISO hetet szeretnél, akkor %Y helyett %G, %W helyett pedig %V.

A program pontosan azt csinálta, amit mondtál neki. Az, hogy amit mondtál neki, nem egyezik meg azzal, amit elvárnál, az nem a program hibája. RTFM.

Ugyanis a cronolog az strftime-ot használja.

https://pubs.opengroup.org/onlinepubs/9699919799/functions/strftime.html

https://www.ibm.com/docs/en/i/7.3?topic=functions-strftime-convert-date…

Szerk: nem hittem volna, hogy egy viccet magyarázni kell. De oké, ez nem vicc, szóval a magyarázat: a naiv hozzáállás, miszerint a programozó munkája a legkönnyebb, hiszen pontosan megmondják, hogy mit csináljon, hibásnak bizonyul: ha a hetet is megengedjük a dátum-stringben, akkor az évváltás máris nem triviális.

Esetünkben látható, hogy a cronolog fejlesztője vette a fáradságot, hogy rendesen körbejárja a van hét /nincs hét vs van hónap/nincs hónap eseteit.

Ideje lenne bevezetni az IFC-t

"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "