Zdravím,
potřeboval jsem výpočet věku (současnost - datum narození) zaokrouhlenou na celé roky. Bohužel nepodařil se mi vzorcem odstranit problém přestupných let - nepřesnost výsledku napřiklad v den narozenin u starších kteří již mají jeden nebo více přestupných let za sebou.
Nakonec jsem to vyřešil tímto makrem, ale přijde mi to jako příliš krkolomné řešení.
V podstatě jsem rozsekal datum na dny, měsíce a roky a s každým počítal zvlášť:
Function roky(d)
roky = year(d)
end function
function mesice(d)
mesice = month(d)
end function
function dny(d)
dny=day(d)
end function
sub vypocet
a=thisComponent.sheets(0).getCellRangeByName("D7")
rokyditete=roky(a.value)
mesditete=mesice(a.value)
dnyditete=dny(a.value)
rokyted = year(now)
mested = month(now)
dnyted = day(now)
rokvysledek = rokyted - rokyditete
mesvysledek = mested - mesditete
dnyvysledek = dnyted - dnyditete
select case dnyvysledek
case -31 to -1
mesvysledek = mesvysledek - 1
case 0
mesvysledek = mesvysledek
case 1 to 31
mesvysledek = mesvysledek
end select
select case mesvysledek
case -12 to -1
rokvysledek = rokvysledek - 1
case 0
rokvysledek = rokvysledek
case 1 to 12
rokvysledek = rokvysledek
end select
Rem následuje umístění výsledku do bunky a end sub
Musí snad existovat jednodušší řešení? Jak to vidím bude to nějaká jednoduchá funkcička kterou jsem nenašel a objevoval Ameriku
Lze toto řešit i vzorcem v Calcu?
Díky všem machrům za odpověď
Linux Mint 16 Petra - Apache OpenOffice 4.0.1
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ