Ikke sikkert det er en løsning for deg, men en vei rundt at det står 24 år og 6 måneder før man fyller ut kan jo være å skjule det feltet helt til fnr er fyllt ut?
Jeg fant tidligere et eksempel (Regne ut fødelsdato med riktig århundre) hvor man benytter skatteetatens regler for å beregne alder som jeg kopierte og tilpasset. Jeg har et skript som sjekker om en person er over eller under 18 år.
Legger det ved her så kan man bruke/tilpasse om ønskelig.
//Beregning av om person er over 18 år til og med dagens dato
//Henter dagens dato for sammenligning
var dagensdato = now();
var dag = getday(dagensdato);
var maaned = getmonth(dagensdato);
var aar = getyear(dagensdato);
//henter fnr til den innloggede brukeren
var fnr=Kopi_fnr;
var fdag=substr(fnr,0,2);
var fmaaned=substr(fnr,2,2);
var arstall=int(substr(fnr,4,2));
var individnr=substr(fnr,6,3); //henter individnummeret for sjekk iht skatteetatens regler
//SKatteetatens regler pr 07.07.2022
//1854-1899, brukes serien 749-500
//1900-1999, brukes serien 499-000
//1940-1999, brukes også serien 999-900
//2000-2039, brukes serien 999-500
//beregner århundre basert på S-etatens regler
var arhundre;
var faar;
if(individnr>=500 && individnr<=749 && arstall>=54 && arstall<=99){arhundre=1800};
if(individnr>=0 && individnr<=499 && arstall>=0 && arstall<=99){arhundre=1900};
if(individnr>=900 && individnr<=999 && arstall>=40 && arstall<=99){arhundre=1900};
if(individnr>=500 && individnr<=999 && arstall>=0 && arstall<=39){arhundre=2000};
faar=(arhundre)+(arstall);
//Genererer fødselsdato med korrekt århundre => date(år,mnd,dag)
var fdato = date(faar,fmaaned,fdag);
//Sammenligne fødselsår med nåværende år
//Først sjekke om vedkommende er over 18 - i så fall er saken grei
if(aar - faar > 18)
{
return true;
};
//Sjekke om vedkommende fyller 18 dette året - i så fall må vi sammenligne måneder og, hvis nødvendig, dag
if(aar - faar == 18)
{
if(maaned - fmaaned > 0)
{
return true;
};
if(maaned - fmaaned < 0)
{
return false;
};
//Dersom vedkommende har dag i inneværende måned må vi sjekke dag for å finne ut om vedkommende er over 18 år
if(maaned - fmaaned == 0)
{
if(dag - fdag > 0)
{
return true;
};
if(dag - fdag < 0)
{
return false;
}
if(dag - fdag == 0)
{
return true;
//gratulerer med dagen
};
};
};
//Sjekke om vedkommende er under 18 dette året - i så fall returnerer vi false siden vedkommende er under 18
if(aar - faar < 18)
{
return false;
};
return false;