Avatar billede mskjoldp Novice
01. juli 2007 - 01:21 Der er 15 kommentarer og
1 løsning

ugen i minutter

Hey E

jeg har arbejdet lidt på denne kode der skal vise minutterne i hele ugen startende med time().

Koden virker ca. OK. Fejlen er at minutterne for hver time starter ved aktuel minut fx 20 istedet for altid at stare med 0.

kode:
    <%    Dim arrDage, varDage, varHour, k
        i = 0
        for i = 0 to 6
            arrDage = arrDage & WeekdayName(Weekday(Date+i)) & ":"
        next
        varDage = Split(arrDage,":") %>
        <table border="1"><tr>
    <%    for k = 0 to 6 %>
        <td colspan="1440">
    <%    response.Write(varDage(k))%>
        <table border="1"><tr>
    <%    for j = 0 to 24 ' definer første dags længde efterfulgt af 24 timer for resten af ugen %>
        <td>
    <%    varHour = ((hour(time)+j) mod 24)
        if len(varHour) < 2 then varHour = "0" & varHour %>
        <%=varHour%>
        <table border="1"><tr>
    <%    for i = 0 to 60 ' 1440 min på en dag %>
        <td>
        <%    if len((minute(time())+i) mod 60) < 2 then
                response.Write("0" & (minute(time())+i) mod 60)
            else
                response.Write((minute(time())+i) mod 60)
            end if%>
        </td>
    <%    next%>
        </tr></table>
        </td>
    <%    next%>
        </tr></table>
        </td>
    <%    next%>
        </tr></table>

Any help :)
Avatar billede thesurfer Nybegynder
01. juli 2007 - 04:26 #1
Er du sikker på, at det ikke skal være?:

    <%    for i = 0 to 59 ' 1440 min på en dag %>
        <td>
        <%
                if i < 10 then response.write "0"
                response.write i
        %>
        </td>



i stedet for



    <%    for i = 0 to 60 ' 1440 min på en dag %>
        <td>
        <%    if len((minute(time())+i) mod 60) < 2 then
                response.Write("0" & (minute(time())+i) mod 60)
            else
                response.Write((minute(time())+i) mod 60)
            end if%>
        </td>



Ellers starter den jo med nuværende minuttal..
Dvs, hvis klokken på din computer er 12:16, vil den starte med 16.
Hvis klokken er 01:21, vil den starte med 21..

Så i stedet for at bruge "minute(time())", skal du bare bruge "i"..

Jeg går ud fra, at du bruger modulus, for at finde ud af, at minuttallet er under 10, og derfor skal tilføje et "0", så der f.eks. kommer til at stå "01", "02", osv..
Her kan du igen bare bruge i.. Check om i er under 10.. hvis det er sandt udskriv "0"..
Avatar billede thesurfer Nybegynder
01. juli 2007 - 04:29 #2
Lige en detalje mere..

Som du måske har lagt mærke til, har jeg ændret "60" til "59":

    <%    for i = 0 to 59 ' 1440 min på en dag %>

Det er fordi der kun er 10 enheder (minutter) på en time.

Men hvis du kører loopen 0-60, vil du have 61 enheder, fordi både 0 og 60 tælles med.

Men 60 er jo 0, i den næste time, så den skal ikke med..

Eksempel: Hvis du kigger på et digitalur, vil du aldrig se "60" som minuttal.. :-)
Avatar billede mskjoldp Novice
01. juli 2007 - 08:54 #3
hey thesurfer

koden er tiltænkt at skulle starte med nuværende minuttal, mit problem er bare at finde ud af hvor mange minutter der er tilbage inden næste time starter. Derefter skal alle 60 minutter bruges til de resterende timer i ugen.

modulus kender jeg ikke, har du et ex.

Kender ASP kun til 10 minutter (enheder) på en time?
Avatar billede mskjoldp Novice
01. juli 2007 - 10:02 #4
Hey igen,

jeg fik tid til at udvide koden, og resulatatet er OK.

kode:
Dim arrDage, varDage, varHour, k, varMin, varTime %>
<%    varTime = hour(time())%>
<%    varMin = minute(time())%>
<table border="1">
    <tr>
    <%    for k = 0 to 6 %>
            <td>
            <%    response.Write(WeekdayName(Weekday(Date+k)))%>
                <table border="1">
                    <tr>
                    <%    if k = 0 then
                            for j = 0 to (23-varTime)%>
                                <td>
                            <%    varHour = ((hour(time)+j) mod 24)
                                if len(varHour) < 2 then varHour = "0" & varHour %>
                                    <%=varHour&" "&(WeekdayName(Weekday(Date+k)))%>
                                    <%    if j = 0 then %>
                                            <table border="1">
                                                <tr>
                                            <%    for i = 0 to (59-varMin) ' 1440 min på en dag %>
                                                    <td>
                                                    <%    if len((minute(time())+i) mod 60) < 2 then
                                                            response.Write("0" & (minute(time())+i) mod 60)
                                                        else
                                                            response.Write((minute(time())+i) mod 60)
                                                        end if%>
                                                    </td>
                                                <%    next%>
                                                </tr>
                                            </table>
                                    <%    else%>
                                            <table border="1">
                                                <tr>
                                                <%    for i = (0-varMin) to (59-varMin) ' 1440 min på en dag %>
                                                        <td>
                                                        <%    if len((minute(time())+i) mod 60) < 2 then
                                                                response.Write("0" & (minute(time())+i) mod 60)
                                                            else
                                                                response.Write((minute(time())+i) mod 60)
                                                            end if%>
                                                        </td>
                                                <%    next%>
                                                </tr>
                                            </table>
                                    <%    end if%>
                                </td>
                        <%    next
                        else
                            for j = (0-varTime) to (23-varTime)%>
                                <td>
                            <%    varHour = ((hour(time)+j) mod 24)
                                if len(varHour) < 2 then varHour = "0" & varHour %>
                                    <%=varHour&" "&(WeekdayName(Weekday(Date+k)))%>
                                    <%    if j = 0 then %>
                                            <table border="1">
                                                <tr>
                                            <%    for i = 0 to (59-varMin) ' 1440 min på en dag %>
                                                    <td>
                                                    <%    if len((minute(time())+i) mod 60) < 2 then
                                                            response.Write("0" & (minute(time())+i) mod 60)
                                                        else
                                                            response.Write((minute(time())+i) mod 60)
                                                        end if%>
                                                    </td>
                                                <%    next%>
                                                </tr>
                                            </table>
                                    <%    else%>
                                            <table border="1">
                                                <tr>
                                                <%    for i = (0-varMin) to (59-varMin) ' 1440 min på en dag %>
                                                        <td>
                                                        <%    if len((minute(time())+i) mod 60) < 2 then
                                                                response.Write("0" & (minute(time())+i) mod 60)
                                                            else
                                                                response.Write((minute(time())+i) mod 60)
                                                            end if%>
                                                        </td>
                                                <%    next%>
                                                </tr>
                                            </table>
                                    <%    end if%>
                                </td>
                        <%    next
                        end if%>
                    </tr>
                </table>
            </td>
    <%    next%>
    </tr>
</table>


nogen kommentarer?
Avatar billede thesurfer Nybegynder
01. juli 2007 - 19:52 #5
Det ser fint ud, mht minuttal.

Hvad med teksten der står øverst?

F.eks. 19 søndag, 20 søndag, 21 søndag, osv..

Måske ville det være en god ide, at skifte linie engang i mellem, så man ikke skal scrolle så meget?
Avatar billede mskjoldp Novice
01. juli 2007 - 21:01 #6
Nu kommer så udfordringen. Et db udtræk fx: 1030 samt fx: 1240 skal nu være grunddata for farvning af minuttallene :)

Selv layoutet er endnu ikke udarbejdet, da jeg først vil ha tiden sat op. Tiden er nu sat op og arbejdet med layoutet baseret på db data kan begynde.

Resultatet skal være en visuellisering af aktive tider for genstande.
Avatar billede mskjoldp Novice
02. juli 2007 - 21:43 #7
nogen der har mod på udfordringen?
Avatar billede bauerdata Nybegynder
03. juli 2007 - 01:00 #8
Her er et forslag med rødfarvning af optagede perioder. PS. skrevet i python.
http://www.databassen.dk:8090/bauerdata/python-program-eksempler/ugeoversigt
Avatar billede mskjoldp Novice
03. juli 2007 - 23:07 #9
jeg er ikke til at lære et nyt sprog for nuværende...
Avatar billede thesurfer Nybegynder
07. juli 2007 - 23:06 #10
mskjoldp> Det kan jeg vist desværre ikke hjælpe med.
Avatar billede spradebassen Nybegynder
01. august 2007 - 18:51 #11
Bauedata >>> http://support.microsoft.com/kb/276494
Dit udemærkede python program, som er den eneste løsning på den stillede opgave
kan nemt fungere i ASP. Det er en af styrkerne ved ASP at det så nemt kan integrere
løsninger som alledere fungerer og man derved sparer tid = penge på sine projekter.
ASP har en komando som hedder <%LANGUAGE=python%>
den sættes ind i starten af programmet.
herefter omslutts din python kode med
<%
python kode
%>
Dine print sætninger erstattes med Response.write()
og voila mskjold behøver ikke at lære et nyt sprog
han kan bare bruge bauerdata's løsning og komme videre med sine opgaver
eller han kan vente på at nogle eksperter skriver programmet til ham i rent asp
Avatar billede thesurfer Nybegynder
01. august 2007 - 20:05 #12
spradebassen> Hmm.. du skriver at bauerdata's kode virker, og smider selv et svar?
Avatar billede mskjoldp Novice
06. august 2007 - 21:44 #13
jeg afprøver python koden ved lejlighed og vender tilbage...
Avatar billede bauerdata Nybegynder
07. august 2007 - 01:08 #14
Til Spradebassen.
Mange tak for et konstruktivt indlæg og en posetiv ånd som klæder eksperten.dk
Du må meget gerne få poient for dit svar.
Avatar billede mskjoldp Novice
23. september 2007 - 23:41 #15
tak for indlæg, jeg er lidt flov over ikke at have testet ex endnu, men jeg har prioriteret tiden hårdt. opgaven skal stadigvæk løses, men ikke endnu, så ha tålmodighed med mig :-/
Avatar billede mskjoldp Novice
23. november 2007 - 19:49 #16
jeg har ikke haft tid til at teste men lukker hermed spg og takker for input
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

Seneste spørgsmål Seneste aktivitet
30 min siden Tomt felt i Start Af ErikHg i Windows
I går 23:00 Hyperlink til tekst Af Nanarsi i Excel
18/0121:03 Forlænge ringetid Af 1Dorte i Apps til Android
17/0117:38 Video ikoner Af Malm i Windows
17/0117:27 Video ikoner Af logbuilders i Windows