Avatar billede diness Nybegynder
25. oktober 1999 - 18:17 Der er 20 kommentarer og
2 løsninger

Javascript: Automatisk dato og ugevalg.

Jeg står og mangler et script, der automatisk sender brugeren videre til den rigtige html side. Der er 2 programmer, et for de lige uger, og et for de ulige. Så når brugeren klikker på program skal han automatisk få vist det rigtige program, og den rigtige dato.

Forstår I det? Kan det overhovedet laves med javascript?

Avatar billede isdan Nybegynder
25. oktober 1999 - 19:25 #1
Hvad mener du med>

Lige og ulige uger Mener du 52 uger i året og 1,3,5,7 er ulige uger?

Og hvad snakker du om 2 programmer

Prøv og  forklare lidt mere.
Avatar billede skjoldby Nybegynder
25. oktober 1999 - 19:30 #2
Der er ikke nogen måde man kan kalde efter en uge i javascript. Kun dage, måneder og år. Jeg tror nu nok det kan lade sig gøre på en eller anden måde, men det kræver et større regnestykke.
Hvis du bare havde programmerne ud for hver ugedag var det straks nemmere.
Avatar billede cyberesben Nybegynder
25. oktober 1999 - 19:32 #3
jeg ville tro det var noget med et program som så checkede datoen og returnerede variablen uge med værdien ulige eller lige

og så bagefter
if (uge == 'lige') program1();
else if (uge == 'ulige') program2();
Avatar billede isdan Nybegynder
25. oktober 1999 - 19:43 #4
cyberesben hvis du ikke har en lige uge så må du ha en ulige ikke.

if (uge == 'lige'){ program1();
else
program2(); 
}
Avatar billede cyberesben Nybegynder
25. oktober 1999 - 19:50 #5
hvis nu der går noget galt i kørsel af funktionen så er det bedst at lave den så den checker begge steder
Avatar billede diness Nybegynder
25. oktober 1999 - 21:10 #6
Kan man få lidt mere rå kode at arbejde med. Et eksempel ville være fedt.
Avatar billede starleicht Nybegynder
26. oktober 1999 - 10:13 #7
Følgende Script returnerer ugetallet, men hvordan man tjekker for lige eller ulige ugetal ved jeg sgu' ikke:.


<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"><!--
function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function getWeek(year,month,day) {
    var when = new Date(year,month,day);
    var newYear = new Date(year,0,1);
    var offset = 7 + 1 - newYear.getDay();
    if (offset == 8) offset = 1;
    var daynum = ((Date.UTC(y2k(year),when.getMonth(),when.getDate(),0,0,0) - Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
    var weeknum = Math.floor((daynum-offset+7)/7);
    if (weeknum == 0) {
        year--;
        var prevNewYear = new Date(year,0,1);
        var prevOffset = 7 + 1 - prevNewYear.getDay();
        if (prevOffset == 2 || prevOffset == 8) weeknum = 53; else weeknum = 52;
    }
    return weeknum;
}

var now = new Date();
weeknum = getWeek(y2k(now.getYear()),now.getMonth(),now.getDate())
document.write('Week number = ' +  weeknum);

//--></SCRIPT>
Avatar billede isdan Nybegynder
26. oktober 1999 - 10:38 #8
du kan bruge modul operatoren % og tag

weeknum % 2 og hvis de bliver en rest så har du ulige tal ellers er du lige tal
Avatar billede isdan Nybegynder
26. oktober 1999 - 10:39 #9
så scripte ser sådan ude....


<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"><!--
function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function getWeek(year,month,day) {
    var when = new Date(year,month,day);
    var newYear = new Date(year,0,1);
    var offset = 7 + 1 - newYear.getDay();
    if (offset == 8) offset = 1;
    var daynum = ((Date.UTC(y2k(year),when.getMonth(),when.getDate(),0,0,0) - Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
    var weeknum = Math.floor((daynum-offset+7)/7);
    if (weeknum == 0) {
        year--;
        var prevNewYear = new Date(year,0,1);
        var prevOffset = 7 + 1 - prevNewYear.getDay();
        if (prevOffset == 2 || prevOffset == 8) weeknum = 53; else weeknum = 52;
    }
    return weeknum;
}

var now = new Date();
weeknum = getWeek(y2k(now.getYear()),now.getMonth(),now.getDate())

lige = weeknum%2

if (lige == 0){
document.write("Ugen er en lige uge  :",weeknum)
}
else
document.write("Ugen er en ulige uge  :",weeknum)
//--></SCRIPT>
Avatar billede starleicht Nybegynder
26. oktober 1999 - 11:24 #10
Sådan isdan! - You're the man!
Avatar billede diness Nybegynder
26. oktober 1999 - 12:03 #11
okay, kan man så lige få jer til at lave det til et link så hvis det er en ligeuge så bliver den sendt til: lige.htm og hvis det er en ulige uge så bliver brugeren sendt til: ulige.htm
istedet for den pop-up der laves iøjeblikket.
Avatar billede isdan Nybegynder
26. oktober 1999 - 12:23 #12
her har du det du skal bare lave linken om til dine absalute link i stedet får www.isdan.dk


<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"><!--
function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function getWeek(year,month,day) {
    var when = new Date(year,month,day);
    var newYear = new Date(year,0,1);
    var offset = 7 + 1 - newYear.getDay();
    if (offset == 8) offset = 1;
    var daynum = ((Date.UTC(y2k(year),when.getMonth(),when.getDate(),0,0,0) - Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
    var weeknum = Math.floor((daynum-offset+7)/7);
    if (weeknum == 0) {
        year--;
        var prevNewYear = new Date(year,0,1);
        var prevOffset = 7 + 1 - prevNewYear.getDay();
        if (prevOffset == 2 || prevOffset == 8) weeknum = 53; else weeknum = 52;
    }
    return weeknum;
}

var now = new Date();
weeknum = getWeek(y2k(now.getYear()),now.getMonth(),now.getDate())
ulige_link = "http://www.isdan.dk"
lige_link = "http://www.isdan.dk"
lige = weeknum%2

if (lige == 0){
document.write("Ugen er en lige uge  :",weeknum,"  ")
document.write("Du er på vej til ",ulige_link  )
document.write("<meta http-equiv=refresh content=1;URL="+ulige_link+">")

}
else
document.write("Ugen er en ulige uge  :",weeknum,"    ")
document.write("Du er på vej til ",lige_link  )
document.write("<meta http-equiv=refresh content=1;URL="+lige_link+">")

//--></SCRIPT> 

Avatar billede starleicht Nybegynder
26. oktober 1999 - 12:30 #13
Dette script sender dig afhængig af ugenummer til "lige_uge.html" eller "ulige_uge.html" når du dytter på en knap.

<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"><!--
function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function getWeek(year,month,day) {
    var when = new Date(year,month,day);
    var newYear = new Date(year,0,1);
    var offset = 7 + 1 - newYear.getDay();
    if (offset == 8) offset = 1;
    var daynum = ((Date.UTC(y2k(year),when.getMonth(),when.getDate(),0,0,0) - Date.UTC(y2k(year),0,1,0,0,0)) /1000/60/60/24) + 1;
    var weeknum = Math.floor((daynum-offset+7)/7);
    if (weeknum == 0) {
        year--;
        var prevNewYear = new Date(year,0,1);
        var prevOffset = 7 + 1 - prevNewYear.getDay();
        if (prevOffset == 2 || prevOffset == 8) weeknum = 53; else weeknum = 52;
    }
    return weeknum;
}

function sendto(){
    var now = new Date();
    weeknum = getWeek(y2k(now.getYear()),now.getMonth(),now.getDate())
    lige = weeknum%2
    if (lige == 0){
        location.href = 'lige_uge.html';
    }
    else {
        location.href = 'ulige_uge.html';
    }
}
//--></SCRIPT>

<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"><!--
    {document.write('<form><input type=button value="Start program" name="Program" onClick="sendto()"></form>');}
</SCRIPT>
Avatar billede isdan Nybegynder
26. oktober 1999 - 12:32 #14
starleicht>>  gør mit script ikke det samme
Avatar billede starleicht Nybegynder
26. oktober 1999 - 12:41 #15
Nej, dit script sender én automatisk videre til "lige uge siden" eller "ulige uge siden", mit forudsætter en handling (tryk på knap). Ifølge diness' oprindelige spørgsmål er det først efter brugeren "klikker på program" at der videresendes. Men det må jo være op til diness hvad han vil bruge.
Avatar billede diness Nybegynder
26. oktober 1999 - 13:09 #16
Ja, det må jeg lige kigge på.
Tak.
Avatar billede isdan Nybegynder
26. oktober 1999 - 14:51 #17
Noh yeah du har ret, jeg tænkte ikke på denne knap.
Avatar billede hnteknik Novice
12. november 1999 - 16:26 #18
Hej - jeg skal bruge et javscript, der - når man klikker på et link sender en til en given html side afhængig af datoen.

Eks: hvis dato er 1-12-99 goto 1.htm
hvis dato kun er 30-11-99 got desværre.htm

en sådan rutine vil jeg gerne give 100 points for i et særskilt spærgsmål !

Henrik

Avatar billede starleicht Nybegynder
16. november 1999 - 11:13 #19
Henrik > Prøv nedenstående:
******************************************************************
<HTML>
<HEAD>
<TITLE>test for dato</TITLE>
<script language="JavaScript">
        function frist(frist,dokument) {
        now = new Date();
        idag = (((1900+now.getYear())*10000)+((now.getMonth()+1)*100)+now.getDate());
        if (idag==frist)
        window.open(dokument);
        else window.open(desværre.htm');
        }
</script>
</HEAD>

<body>

<a href="java script:frist(19991201,1.htm')">Test for dato</a>

</BODY>
</HTML>
******************************************************************
Skærings-datoen sættes ind i <a>-tag'en. I eksemplet er skærings-datoen 1/12-1999 (19991201), og når der klikkes på linket "Test for dato" sendes man til "1.htm", når det er den 1/12-1999 og til "desværre.htm" på alle andre dage.
Du kan selvfølge ændre på koden (idag==frist) til f.eks (idag<=frist) eller (idag>=frist) alt efter behov.

Undskyld det sene svar
:-) Starleicht
Avatar billede hnteknik Novice
16. november 1999 - 19:04 #20
ja Starleicht. Efter at spørgsmålet havde kogt et par dage - lavede jeg det som et selvstændigt spørgsmål:
http://www.eksperten.dk/spm.asp?id=7031
og fik svar samme dag.

Jeg kan dog godt lide din løsning (OG SVAR). Ping mig, hvis du føler snydt, for så må jeg kigge i posen igen om der ikke skulle være nogle godter !

Henrik
Avatar billede starleicht Nybegynder
17. november 1999 - 08:06 #21
Nå, jeg havde ikke set http://www.eksperten.dk/spm.asp?id=7031.
Men brug bare ovenstående løsning, det var alligevel én jeg "havde på lager".
:-) Starleicht
Avatar billede hnteknik Novice
18. november 1999 - 21:13 #22
Fint nok. Jeg skal have dig i tankerne.
Sulle der være et database problem, så ...

Henrik
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