Avatar billede pacman Nybegynder
16. januar 2004 - 09:27 Der er 8 kommentarer og
1 løsning

Dato udregning

Jeg skal have lavet et javascript der udregner dato plus x antal dage...
altså.. man vælger først ugedag (fredag f.eks), måned dag (30.) f.eks., måned (marts f.eks.), og år (2004 f.eks.)

hvordan lægger jeg så f.eks. 5 dage til?..

altså:
Mandag 30. Marts 2004
skal blive til
Søndag  4. April 2004

der er mange problemer forbundet med det..
der skal findes ud af hvor mange dage der er i hver måned, den skal evt. tage højde for skudår, den skal udregne om det er i en ny måned, et nyt år eller whatever.. Der er nok mange flere ting..

Jeg kan virkelig ikke selv tænke mig til hvordan jeg gør det nemmest..

Findes der evt. et færdigt script et sted der cirka kan gøre det jeg har brug for?
Avatar billede nute Nybegynder
16. januar 2004 - 09:32 #1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

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

<body>
<script language="JavaScript" type="text/javascript">
<!--

function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}

alert( addDays(new Date(),5));

//-->
</script>


</body>
</html>
Avatar billede nute Nybegynder
16. januar 2004 - 09:35 #2
nah ... dette er vel noget "bedre"/specifikt til dit formål :

<script language="JavaScript" type="text/javascript">
<!--

function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}

var objDate = new Date(2004, 2, 30);
var intAddDays = 5;
alert( "Før: " + objDate.toLocaleString() );
objDate = addDays( objDate,intAddDays );
alert( "Etter: " + objDate.toLocaleString() );

//-->
</script>

/nute
Avatar billede pacman Nybegynder
16. januar 2004 - 09:50 #3
Kan man få den til også at smide ud at det f.eks. er en mandag?, og det skulle gerne være 24 timers klokkeslet istedet for AM/PM den spytter ud... ellers skal klokkeslet fjernes
Avatar billede nute Nybegynder
16. januar 2004 - 10:12 #4
<script language="JavaScript" type="text/javascript">
<!--

function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}

var arrDays = new Array( "søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag" );
var objDate = new Date(2004, 2, 30);
var intAddDays = 5;

objDate = addDays( objDate,intAddDays );
var strResult = arrDays[ objDate.getDay() ] + ", den " + objDate.getDate() + " - " + ( objDate.getMonth() + 1 ) + " - " + objDate.getFullYear();
alert( strResult );

//-->
</script>

Du kan også se på hvilke muligheder der ligger i Dato objektet:

http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/date.html

/nute
Avatar billede pacman Nybegynder
16. januar 2004 - 10:36 #5
lige en sidste ting - så er points'ne dine..
kan jeg få dig til at adde måned navne?...

jeg laver lige forarbejdet til dig, så du næsten bare kan copy+paste:

( "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" );
Avatar billede nute Nybegynder
16. januar 2004 - 10:40 #6
function addDays(myDate,days) {
    return new Date(myDate.getTime() + days*24*60*60*1000);
}

var arrDays = new Array( "søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag" );
var arrMonths = new Array( "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" );
var objDate = new Date(2004, 2, 30);
var intAddDays = 5;

objDate = addDays( objDate,intAddDays );
var strResult = arrDays[ objDate.getDay() ] + ", den " + objDate.getDate() + ". " + arrMonths[ objDate.getMonth() ] + ", " + objDate.getFullYear();
alert( strResult );

60 points for dette svar er mere end rigelig (30 ville holde). smid et svar selv og smup de resterende points ;-)

/nute
Avatar billede pacman Nybegynder
16. januar 2004 - 11:03 #7
Hmm.. hvis du synes... jeg synes nu du har fortjent det hele :)
Er virkelig glad for at have fået det løst.
Avatar billede pacman Nybegynder
16. januar 2004 - 11:05 #8
aha... det gik så i kage.. den giver dig åbenbart 200p hvis jeg vælger at skrive 60 i din "box" og ikke at skrive noget i min egen.. troede enten at den gav dig 60 så og mig resten, eller at den gav dig 60 og ventede med resten af pointsne..

nåmen.. som sagt - jeg synes du har fortjent dem :) - jeg er ikke nærrig :P
Avatar billede nute Nybegynder
16. januar 2004 - 11:12 #9
nææ ... jeg vil ikke have så meget ... men tak anyway ;-)

besvar dette, så får du nogle af dine points tilbage ...

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

/nute
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