Avatar billede chrisrj Forsker
22. juli 2003 - 12:16 Der er 10 kommentarer og
1 løsning

Hjælp til ugeskema/vagtplan ønskes

Jeg er ved at lave et ugeskema/vagtplan.

Men det driller mig lidt. ( selvfølgeligt :) )

Jeg mistænker koden for at indholde en uendelig løkke, men jeg kan ikke finde den! :(

Derudover har jeg også lidt problemer med at få udfyldt skemaet korrekt.

Skemaet er inddelt i 7 dage og 12 x 2 timer:
tider manddag tirsdag onsdag torsdag fredag lørdag søndag
0-2
2-4
4-6
6-8
8-10
10-12
12-14
14-16
16-18
18-20
20-22
22-0

Hvis jeg f.eks. resevere mandag fra 0 til 22, vil scriptet "glemme" at udfylde det sidste timeinterval.
Det samme sker når jeg resevere fra 2 til 0.

Her er min kode:
<table bgcolor="#b22222">
<tr bgcolor="#8B1A1A">
<td width="50"><font size="1">Tider</font></td>
<td width="70" align="center"><font size="1">Mandag</font></td>
<td width="70" align="center"><font size="1">Tirsdag</font></td>
<td width="70" align="center"><font size="1">Onsdag</font></td>
<td width="70" align="center"><font size="1">Torsdag</font></td>
<td width="70" align="center"><font size="1">Fredag</font></td>
<td width="70" align="center"><font size="1">Lørdag</font></td>
<td width="70" align="center"><font size="1">Søndag</font></td>
</tr>
<%
starttid = 0
sluttid = 2
dag = 1
dagoptaget = 1
optidstart = 0
optidslut = 11
dagsat = false
do
    response.write "<tr bgcolor='#8B1A1A'>"
    response.write "<td><font size='1'>" & starttid & "-" & sluttid & "</font></td>"
    do while dag =< 7
        if ((dagoptaget = dag) and (starttid = optidstart) and (not dagsat = true)) then
            response.write "<td rowspan='" & optidslut & "'><font size='1'>optaget . . . .</font></td>"
            dagsat = true
            dag = dag + 1
            do while dag =< 7
                response.write "<td><font size='1'>dag " & dag & " tid " & starttid & "</font></td>"
                dag = dag + 1
            loop
            dag = 1
        else if ((not dagoptaget = dag) and (not starttid = optidstart)) then
            response.write "<td><font size='1'>dag " & dag & " tid " & starttid & "</font></td>"
        end if
        end if
        dag = dag + 1
        dagsat = false
    loop
    dag = 1
    starttid = starttid + 2
    sluttid = sluttid + 2
    response.write "</tr>"
    if sluttid = 24 then
        sluttid = 00
    end if
loop while sluttid <> 02
%>
</table>
Avatar billede chrisrj Forsker
22. juli 2003 - 12:54 #1
Opdateret:

<%
starttid = 0
sluttid = 1
dag = 1
dagoptaget = 1
optidstart = 1
optidslut = 22
dagsat = false
do
    response.write "<tr bgcolor='#8B1A1A'>"
    response.write "<td><font size='1'>" & starttid & "-" & sluttid & "</font></td>"
    do while dag =< 7
        if ((dagoptaget = dag) and (starttid = optidstart) and (not dagsat = true)) then
            response.write "<td rowspan='" & optidslut & "'><font size='1'>optaget . . . .</font></td>"
            dagsat = true
            dag = dag + 1
            do while dag =< 7
                response.write "<td><font size='1'>dag " & dag & " tid " & starttid & "</font></td>"
                dag = dag + 1
            loop
            dag = 1
        else
            if ((not dagoptaget = dag) and (not starttid = optidstart)) then
                response.write "<td><font size='1'>dag " & dag & " tid " & starttid & "</font></td>"
            else
                if (dagoptaget = dag) and (sluttid <> optidslut) then
                    response.write "<td><font size='1'>dag " & dag & " tid " & starttid & "</font></td>"
                end if
            end if
        end if
        dag = dag + 1
        dagsat = false
    loop
    dag = 1
    starttid = starttid + 1
    sluttid = sluttid + 1
    response.write "</tr>"
loop while sluttid <> 25
%>

Koden sætter nu korrekt ind, hvor der mangler i bunden, men sætter 1 dag for meget på ud for de optaget tider.
Dog sætter den korrekt dage ved tiden 21-22!?!?!? (scriptet er lavet om til 1 times intervaller)
Avatar billede chrisrj Forsker
22. juli 2003 - 13:23 #2
Opdateret:

<%
starttid = 0
sluttid = 1
dag = 1
dagoptaget = 1
optidstart = 1
optidslut = 22
dagsat = false
do
    response.write "<tr bgcolor='#8B1A1A'>"
    response.write "<td><font size='1'>" & starttid & "-" & sluttid & "</font></td>"
    do while dag =< 7
        if ((dagoptaget = dag) and (starttid = optidstart) and (not dagsat = true)) then
            response.write "<td rowspan='" & optidslut & "'><font size='1'>optaget . . . .</font></td>"
            dagsat = true
            dag = dag + 1
            do while dag =< 7
                response.write "<td><font size='1'>dag " & dag & " tid " & starttid & "</font></td>"
                dag = dag + 1
            loop
        else
            if ((not dagoptaget = dag) and (not starttid = optidstart)) then
                do while dag =< 7
                    response.write "<td><font size='1'>dag " & dag & " tid " & starttid & "</font></td>"
                    dag = dag + 1
                loop
            else
                if ((dagoptaget = dag) and (sluttid = optidslut)) then
                    do while dag =< 7
                        response.write "<td><font size='1'>dag " & dag & " tid " & starttid & "</font></td>"
                        dag = dag + 1
                    loop
                end if
            end if
        end if
        dag = dag + 1
        dagsat = false
    loop
    dag = 1
    starttid = starttid + 1
    sluttid = sluttid + 1
    response.write "</tr>"
loop while sluttid <> 25
%>

Nu skriver den ikke første time på første dag og sidste dag ud, men de andre tider er korrekte. (med undtagelse af ovennæavnte problem ved 21-22 tiden, bare omvendt)
Avatar billede chrisrj Forsker
22. juli 2003 - 13:27 #3
Sådan ser skemaet ud nu:

Tider Mandag ------------- Tirsdag ----- Onsdag ---- Torsdag --- Fredag --- Lørdag --- Søndag
0-1 dag 2 tid 0 --------- dag 3 tid 0 dag 4 tid 0 dag 5 tid 0 dag 6 tid 0 dag 7 tid 0
1-2 optaget . . . . dag 2 tid 1 dag 3 tid 1 dag 4 tid 1 dag 5 tid 1 dag 6 tid 1 dag 7 tid 1
2-3 optaget . . . . dag 2 tid 2 dag 3 tid 2 dag 4 tid 2 dag 5 tid 2 dag 6 tid 2 dag 7 tid 2
3-4 optaget . . . . dag 2 tid 3 dag 3 tid 3 dag 4 tid 3 dag 5 tid 3 dag 6 tid 3 dag 7 tid 3
4-5  optaget . . . .dag 2 tid 4 dag 3 tid 4 dag 4 tid 4 dag 5 tid 4 dag 6 tid 4 dag 7 tid 4
5-6 optaget . . . . dag 2 tid 5 dag 3 tid 5 dag 4 tid 5 dag 5 tid 5 dag 6 tid 5 dag 7 tid 5
6-7 optaget . . . . dag 2 tid 6 dag 3 tid 6 dag 4 tid 6 dag 5 tid 6 dag 6 tid 6 dag 7 tid 6
7-8 optaget . . . . dag 2 tid 7 dag 3 tid 7 dag 4 tid 7 dag 5 tid 7 dag 6 tid 7 dag 7 tid 7
8-9 optaget . . . . dag 2 tid 8 dag 3 tid 8 dag 4 tid 8 dag 5 tid 8 dag 6 tid 8 dag 7 tid 8
9-10 optaget . . . . dag 2 tid 9 dag 3 tid 9 dag 4 tid 9 dag 5 tid 9 dag 6 tid 9 dag 7 tid 9
10-11 optaget . . . . dag 2 tid 10 dag 3 tid 10 dag 4 tid 10 dag 5 tid 10 dag 6 tid 10 dag 7 tid 10
11-12 optaget . . . . dag 2 tid 11 dag 3 tid 11 dag 4 tid 11 dag 5 tid 11 dag 6 tid 11 dag 7 tid 11
12-13 optaget . . . . dag 2 tid 12 dag 3 tid 12 dag 4 tid 12 dag 5 tid 12 dag 6 tid 12 dag 7 tid 12
13-14 optaget . . . . dag 2 tid 13 dag 3 tid 13 dag 4 tid 13 dag 5 tid 13 dag 6 tid 13 dag 7 tid 13
14-15 optaget . . . . dag 2 tid 14 dag 3 tid 14 dag 4 tid 14 dag 5 tid 14 dag 6 tid 14 dag 7 tid 14
15-16 optaget . . . . dag 2 tid 15 dag 3 tid 15 dag 4 tid 15 dag 5 tid 15 dag 6 tid 15 dag 7 tid 15
16-17 optaget . . . . dag 2 tid 16 dag 3 tid 16 dag 4 tid 16 dag 5 tid 16 dag 6 tid 16 dag 7 tid 16
17-18 optaget . . . . dag 2 tid 17 dag 3 tid 17 dag 4 tid 17 dag 5 tid 17 dag 6 tid 17 dag 7 tid 17
18-19 optaget . . . . dag 2 tid 18 dag 3 tid 18 dag 4 tid 18 dag 5 tid 18 dag 6 tid 18 dag 7 tid 18
19-20 optaget . . . . dag 2 tid 19 dag 3 tid 19 dag 4 tid 19 dag 5 tid 19 dag 6 tid 19 dag 7 tid 19
20-21 optaget . . . . dag 2 tid 20 dag 3 tid 20 dag 4 tid 20 dag 5 tid 20 dag 6 tid 20 dag 7 tid 20
21-22 optaget . . . . dag 1 tid 21 dag 2 tid 21 dag 3 tid 21 dag 4 tid 21 dag 5 tid 21 dag 6 tid 21 dag 7 tid 21
22-23 dag 2 tid 22 dag 3 tid 22 dag 4 tid 22 dag 5 tid 22 dag 6 tid 22 dag 7 tid 22
23-24 dag 2 tid 23 dag 3 tid 23 dag 4 tid 23 dag 5 tid 23 dag 6 tid 23 dag 7 tid 23

Nu håber jeg at det passer...
Avatar billede chrisrj Forsker
22. juli 2003 - 13:29 #4
Ikke helt, men næsten. :/
Avatar billede chrisrj Forsker
22. juli 2003 - 13:48 #5
Opdateret, nu virker koden på dag 1!!! :)

Er jeg ikke dygtig!!!


<%
starttid = 0
sluttid = 1
dag = 1
dagoptaget = 1
optidstart = 1
optidslut = 22
rows = optidslut - optidstart
dagsat = false
do
    response.write "<tr bgcolor='#8B1A1A'>"
    response.write "<td><font size='1'>" & starttid & "-" & sluttid & "</font></td>"
    do while dag =< 7
        if ((dagoptaget = dag) and (starttid = optidstart) and (not dagsat = true)) then
            response.write "<td rowspan='" & rows & "'><font size='1'>optaget . . . .</font></td>"
            dagsat = true
            dag = dag + 1
            do while dag =< 7
                response.write "<td><font size='1'>opdag " & dag & " tid " & starttid & "</font></td>"
                dag = dag + 1
            loop
        else
            if ((not dagoptaget = dag) and (not starttid = optidstart)) then
                do while dag =< 7
                    response.write "<td><font size='1'>fridag " & dag & " tid " & starttid & "</font></td>"
                    dag = dag + 1
                loop
            else
                if ((dagoptaget = dag) and ((starttid < optidstart) or (sluttid > optidslut))) then
                    do while dag =< 7
                        response.write "<td><font size='1'>fridag2 " & dag & " tid " & starttid & "</font></td>"
                        dag = dag + 1
                    loop
                end if
            end if
        end if
        dag = dag + 1
        dagsat = false
    loop
    dag = 1
    starttid = starttid + 1
    sluttid = sluttid + 1
    response.write "</tr>"
loop while sluttid <> 25
%>
Avatar billede chrisrj Forsker
22. juli 2003 - 15:15 #6
Komplet omskrivninig:

<%
starttid = 0
sluttid = 1
dag = 1
dagoptaget = 2
optidstart = 1
optidslut = 22
rows = optidslut - optidstart
dagsat = false
do
    response.write "<tr bgcolor='#8B1A1A'>"
    response.write "<td><font size='1'>" & starttid & "-" & sluttid & "</font></td>"
    do while dag =< 7   
        if ((dagoptaget = dag) and ((starttid < optidstart) or (starttid > optidslut))) then
            valg = 1
        else
            if ((dagoptaget = dag) and (starttid = optidstart)) then
                valg = 2
            else
                if ((dagoptaget = dag) and ((starttid > optidstart) or (starttid < optidslut))) then
                    valg = 3
                else
                    if ((not dagoptaget = dag) and (starttid = optidstart)) then
                        valg = 4
                    else
                        if ((not dagoptaget = dag) and (not starttid = optidstart)) then
                            valg = 5
                        else
                            valg = 6
                        end if
                    end if
                end if
            end if
        end if
        select case valg
       
        case 1
            response.write "<td><font size='1'>opdag " & dag & " fritid " & starttid & "</font></td>"
            dag = dag + 1
        case 2
            response.write "<td rowspan='" & rows & "'><font size='1'>optaget . . . .</font></td>"
            dagsat = true
            dag = dag + 1
        case 3
            dag = dag + 1
        case 4
            response.write "<td><font size='1'>helfridag " & dag & " optid " & starttid & "</font></td>"
            dag = dag + 1
        case 5
            response.write "<td><font size='1'>helfridag " & dag & " tid " & starttid & "</font></td>"
            dag = dag + 1
        case 6
            dag = dag + 1
        end select   
    loop
    dag = 1
    dagsat = false
    starttid = starttid + 1
    sluttid = sluttid + 1
    response.write "</tr>"
loop while sluttid <> 25
%>
Avatar billede chrisrj Forsker
22. juli 2003 - 15:21 #7
Det virker nu!!!!

Tak for hjælpen!!!!

Lig lige et svar, så for du dine velfortjente points!!!!!
Avatar billede chrisrj Forsker
22. juli 2003 - 15:21 #8
Heheh...

Ok, her er et svar.
Avatar billede dittlau Nybegynder
22. juli 2003 - 15:22 #9
Hvad skete lige her!!!!

/dittlau
Avatar billede chrisrj Forsker
22. juli 2003 - 15:23 #10
Tak for points!!

Utroligt, at man skal løse sine egne problemer på eksperten. :(
Avatar billede chrisrj Forsker
22. juli 2003 - 15:24 #11
Neeej, er der virkelig andre i dette spg??

Kan det virkeligt være rigtigt, at jeg ikke behøver at snakke med mig selv længere??
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
Kurser inden for grundlæggende programmering

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