Avatar billede nanna31 Praktikant
09. januar 2007 - 23:38 Der er 6 kommentarer og
1 løsning

dato plus x måneder

yyyy-mm-dd + 5 måneder, hvad er så den nye dato?
Avatar billede nanna31 Praktikant
10. januar 2007 - 01:19 #1
Findes der evt en funktion i Flash, der svarer til VBScript's DateAdd:

'Add one month to January 31, 2000
document.write(DateAdd("m",1,"31-Jan-00"))Output:2/29/2000
Avatar billede jokkejensen Novice
10. januar 2007 - 14:21 #2
Jeg er ikke den store flash programmør, arbejder mere med serverscript.

men noget ala :

var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var d = new Date(2004, 10);
trace("Start date is "+months[d.getMonth()]+" in the year "+d.getFullYear());
d.setMonth(d.getMonth()+11);
trace("End date is "+months[d.getMonth()]+" in the year "+d.getFullYear());


Skulle kunne få dig videre..
Avatar billede nanna31 Praktikant
10. januar 2007 - 15:30 #3
Har selv fundet en løsning:

I følgende funktion indgiver man en dato i formatet dd-mm-yyyy samt ant måneder man ønsker at forlænge. Herefter får man resultatet i samme format:

function add_months(dateString:String,i:Number) { // dateString format:(dd-mm-yyyy)
   
    function twoCifres(n:Number) { // 6 becomes '06'
        var res:String = String(n);
        if(res.length < 2){res = "0" + res};
        return res;
    }
   
    function days_in_month(year,month:Number) { // month(0-11)
    var d = new Date(year, month+1, 0);
    return d.getDate();
    }

    var year            :Number = Number(substring(dateString,7,4));
    var month             :Number = Number(substring(dateString,4,2));
    var day             :Number = Number(substring(dateString,1,2));
   
    var newYear         :Number = year         + Math.floor(i/12);
    var newMonth         :Number = month     + i%12; // %: modulus
    var newDay            :Number = Math.min(day,days_in_month(newYear,newMonth-1));
           
    var newYearStr        :String = String(newYear);
    var newMonthStr        :String = twoCifres(newMonth);
    var newDayStr        :String = twoCifres(newDay);   
   
    return newDayStr + "-" + newMonthStr + "-" + newYearStr;
}
Avatar billede nanna31 Praktikant
10. januar 2007 - 15:32 #4
Der tages også forbehold for skudår!
Avatar billede jokkejensen Novice
11. januar 2007 - 14:01 #5
okay, men husk det er "forkert" at arbejde med datoer som tekst strenge når der er en klasse til at arbejde med det.

Jeg er nok klar over du sikkert henter dem fra en database eller xml - men få dem hurtigst muligt converteret til en Date().

Blot et råd, sæt dig ind i Date() klassen ..
Avatar billede jokkejensen Novice
11. januar 2007 - 14:02 #6
lidt lige som at bruge en rive til at grave huller. eller en sko som vante.
Avatar billede nanna31 Praktikant
11. januar 2007 - 14:58 #7
Ok, men når jeg gerne vil have formatet i dd-mmm-yyyy, og det indbyggede datoformat er anderledes - kan man så undgå strenge?
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