Obično razlikuju kalendarsku od godine u smislu vremenskog roka.
Porezne prijave vrijede za kalendarsku dakle sve što završava na 2023 je ista kalendarska i ima 365 dana i 365*24sata. dakle ako kažu od 1.1 do 31.12 podrazumijeva se da da se broji prvi i zadnji dan (nisu rekli "nakon 1.1" pa do 31.12. Neki put kažu "unutar iste kalendarske godine"
ali ako si kupio popodne 1.1.2023 i prodao ujutro 1.1.2024 nisi držao 365*24 sata, a trajanje bi u ekstremnom slučaju moglo biti punih 24 sata kraće (kupio 1.1.2023 23:59 prodao 1.1.2024 00:01.
Od tuda i to produženje roka kod dostava: tako da nisi na gubitku ako ti je rješenje dostavljeno u ponedjeljak minutu prije ponoći na utorak: opet imaš 8x24 sata za odgovor do ponoći s idućeg utorka na srijedu.
Da se gleda vremenski period u sat, a ne u dan, onda bi ovo što pričaš bilo OK - ako je transakcija na dan nabave bila u podne 1.1.2020., i sad prodaješ 1.1.2023. prijepodne, onda je to u periodu od manje od dve godine.
No iz primjera FIFO evidencije znamo da se evidentira samo datum, a ne i vrijeme transakcije. Dostavljači, jasno, prate sate, ali nisam još vidio npr. računovođu koji prati sate kad se neka transakcija dogodila. Tako da mi se čini da tu treba primjenjivati računovodstvenu logiku, 2 godine je ipak period koji ne pratiš u sat.
Definitivno je nešto što ću provjeriti s poreznim savjetnikom, ali prilično sam siguran da znam što će mi reći, budući da smo već imali sličnu raspravu vezano uz "30 dana od primitka dohotka", gdje sam od poreznog referenta dobio informaciju da je to jednako "mjesec dana", a od poreznog savjetnika savjet da ipak ispoštujem tih 30 dana jer u zakonu piše 30 dana. Dakle, do daljnjega bih se držao "2 godine", a ne "2 puta 365 dana osim za prijestupnu godinu 366 puta 24 sata".
Ne znam za javascript, ali ako ima nešto kao "time delta" onda je samo pitanje gdje stavljaš < i <=
Formula koju koristim je, u pseudokodu, otprilike ovakva:
1. kreiraj interval od točno 2 godine
2. provjeri je li razlika između datuma nabave i datuma prodaje manja od tog intervala (za vidjeti je li oporezivo)
Datumi su datumi, tj. timestamp dio je 0, dakle računa se od ponoći do ponoći. Isto tako, library zna ispravno primijeniti interval tako da uzme u obzir prijestupnu godinu.