Avatar billede sprit-billist Nybegynder
03. november 2004 - 22:16 Der er 5 kommentarer og
1 løsning

alder skifter ikke på fødselsdags datoen

hey

jeg fandt dette script og ville teste det
men kom frem til at alderen ikke skifter den dag bill gates har fødselsdag.

men hvor er fejlen?

<html>
<head>
<title>Untitled</title>
<script>

var one_day=1000*60*60*24
var one_month=1000*60*60*24*30
var one_year=1000*60*60*24*30*12

function displayage(yr, mon, day, unit, decimal, round){
today=new Date()
var pastdate=new Date(yr, mon-1, day)

var countunit=unit
var decimals=decimal
var rounding=round

finalunit=(countunit=="days")? one_day : (countunit=="months")? one_month : one_year
decimals=(decimals<=0)? 1 : decimals*10

if (unit!="years"){
if (rounding=="rounddown")
document.write(Math.floor((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals+" "+countunit)
else
document.write(Math.ceil((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals+" "+countunit)
}
else{
yearspast=today.getFullYear()-yr-1
tail=(today.getMonth()>mon-1 || today.getMonth()==mon-1 && today.getDate()>=day)? 1 : 0
pastdate.setFullYear(today.getFullYear())
pastdate2=new Date(today.getFullYear()-1, mon-1, day)
tail=(tail==1)? tail+Math.floor((today.getTime()-pastdate.getTime())/(finalunit)*decimals)/decimals : Math.floor((today.getTime()-pastdate2.getTime())/(finalunit)*decimals)/decimals
document.write(yearspast+tail+" "+countunit)
}
}

</script>
</head>
<body>
<script>
displayage(1997, 11, 24, "days", 0, "rounddown")
</script>
</b> old!<br>

<b>
<script>
displayage(2000, 1, 1, "months", 0, "rounddown")
</script>
</b> has passed since the Millennium.<br>

Bill Gates is
<b>
<script>
displayage(1955, 10, 28, "years", 0, "rounddown")
</script>


</body>
</html>
Avatar billede erikjacobsen Ekspert
03. november 2004 - 22:41 #1
Det er vel bare fordi det ikke regner eksakt, men kun som tilnærmelse.
Prøv blot at se angivelsen af hvor lang en måned og et år regnes som.
Avatar billede sprit-billist Nybegynder
03. november 2004 - 22:46 #2
hvor står det??
Avatar billede erikjacobsen Ekspert
03. november 2004 - 22:48 #3
var one_year=1000*60*60*24*30*12

Et år er 12 måneder af 30 dage
Avatar billede olebole Juniormester
03. november 2004 - 22:50 #4
<ole>

Bill Gates har ikke fødselsdag. Rygtet siger, han ved et uheld opstod under afvaskning af nogle petriskåle på MIT. Derfor kan du ikke finde hans fødselsdag  ;D

/mvh
</bole>
Avatar billede roenving Novice
05. november 2004 - 01:13 #5
Hvis du kigger på mine Date()-udvidelser, tror jeg du kan finde det under .age() ...

http://roenving.users.whitehat.dk/date/roenvingDate.html

-- hvor den sidste funktion præcis er beregnet til at afgive eksakte resultater i hele dage !-)
Avatar billede sprit-billist Nybegynder
10. november 2004 - 10:59 #6
har selv klaret den ved hjælp af et lille kursus i kodning af java script
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester