Avatar billede baitianlong Nybegynder
11. oktober 2004 - 02:02 Der er 10 kommentarer og
2 løsninger

datediff - simpel version

Hvis jeg har en string "yy-mm-dd" og en anden string "yy-mm-dd" og ønsker at finde ud af hvor mange dage, der er imellem. Hvordan gør jeg så det. Please - ikke link. Jeg har set på:

http://www.actionscript.org/forums/showthread.php3?s=&threadid=28423

Og det er da ganske rørende. Men jeg vil bare have den helt nedkogte version... datediff("yy-mm-dd", "yy-mm-dd")

Så bliver jeg rigtig glad :)
Avatar billede rohaje Nybegynder
11. oktober 2004 - 09:22 #1
prøv at se her,, der er en der tæller ned dvs. finder antallet af dage, timer, min og sec fra nu til en givet dato:

http://www.eksperten.dk/spm/542702

Det kan du nok skrive om og bruge, ellers sig til hvis det driller.
Avatar billede rohaje Nybegynder
11. oktober 2004 - 12:30 #2
eller sådan her
function datoDif(y1, m1, d1, y2, m2, d2) {
    fra = new Date();
    fra.setFullYear(y1);
    fra.setMonth(m1);
    fra.setDate(d1);
   
    fradato = fra.getTime();
    til = new Date();
    til.setFullYear(y2);
    til.setMonth(m2);
    til.setDate(d2);

    tildato = til.getTime();
    difDage = Math.floor((tildato-fradato)/86400000);
    return difDage;
}
trace(datoDif(2004, 10, 11, 2005, 8, 16));
Avatar billede rohaje Nybegynder
11. oktober 2004 - 12:31 #3
så mangler du bare at pakke string'en ud
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 13:22 #4
Det er sjovt nok at din reference indeholder en reference til et spørgsmål jeg selv har besvaret :)
Avatar billede rohaje Nybegynder
11. oktober 2004 - 13:34 #5
al' ting hænger sammen :)
Avatar billede rohaje Nybegynder
11. oktober 2004 - 13:54 #6
husk at janur md er =0 & dec = 11
Avatar billede rohaje Nybegynder
11. oktober 2004 - 14:04 #7
hov,, jeg tror at Math.floor skal udskiftes med Math.round se denne test

mdArr=["jan","feb","mar","apr","maj","jun","jul","aug","sep","oct","nov","dec"];
function datoDif(y1, m1, d1, y2, m2, d2) {
    fra = new Date();
    fra.setFullYear(y1);
    fra.setMonth(m1);
    fra.setDate(d1);
   
    fradato = fra.getTime();
    til = new Date();
    til.setFullYear(y2);
    til.setMonth(m2);
    til.setDate(d2);

    tildato = til.getTime();
    difDage = Math.round((tildato-fradato)/86400000);
    return difDage;
}
trace(datoDif(2004, 9, 1, 2004, 10, 1));
for( n=0;n<12;n++){
    trace("i 2004 er der "+ datoDif(2004, n, 1, 2004, (n+1), 1)+" dage i "+mdArr[n]);
}
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 15:43 #8
Det tager lang tid at lave den perfekt. Der er jo også skudår osv. Det opstår når:

år % 4 == 0 && ar % 100 != 0 || aar % 400 == 0

Men du skal have tak for hjælpen alligevel. Jeg kunne nok selv have kodet det - men havde egentlig håbet på / regnet med at der var en funktion på Date til den slags. Det er der f.eks i Java og mange andre sprog.

Men du kan bare smide et svar :)
Avatar billede rohaje Nybegynder
11. oktober 2004 - 19:33 #9
skud år er med i den ? prøv at se testen i feb  (29 dage det er skydår i år), fik du udpakket dine strings ?

nå- her er et svar :)
Avatar billede rohaje Nybegynder
11. oktober 2004 - 19:34 #10
hov, hov jeg skal ikke have 200 point for det,, 30 er nok ;)
Avatar billede rohaje Nybegynder
11. oktober 2004 - 19:46 #11
ang. skyd år osv. prøv lige det her og se

mdArr = ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "oct", "nov", "dec"];
function datoDif(y1, m1, d1, y2, m2, d2) {
    fra = new Date();
    fra.setFullYear(y1);
    fra.setMonth(m1);
    fra.setDate(d1);
    fradato = fra.getTime();
    til = new Date();
    til.setFullYear(y2);
    til.setMonth(m2);
    til.setDate(d2);
    tildato = til.getTime();
    difDage = Math.round((tildato-fradato)/86400000);
    return difDage;
}

for (a=2004; a<2025; a++) {
    for (n=0; n<12; n++) {
        trace("i "+a+" er der "+datoDif(a, n, 1, a, (n+1), 1)+" dage i "+mdArr[n]);
    }
    trace("");
}
Avatar billede baitianlong Nybegynder
11. oktober 2004 - 19:52 #12
ord
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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