11. august 2004 - 11:33Der er
15 kommentarer og 1 løsning
Dato baseret på tid og dato på samme dag hvert år
Hej eksperter - jeg har brug for hjælp til 2 spørgsmål :)
Jeg skal finde en måde, hvorpå jeg kan bestemme datoen, udfra et tidspunkt som brugeren indtaster. Hvis brugeren indtaster et tidspunkt mellem kl. 15:00 (formiddag) og kl. 00:00 (midnat) skal datoen være én - hvis brugeren indtaster et tidspunkt mellem 00:00 (midnat) og 15:00 (formiddag) skal datoen være en anden.
Eksempel:
Brugeren indtaster '16:00', så skal datoen være 11. august 2004
Brugeren indtaster '00:30', så skal datoen være 12. august 2004
Nu kommer anden del af spørgsmålet så (jeg deler gerne point ud for svar på ét af mine spørgsmål)
Hvordan finder jeg datoen for fx mandag i uge 41 hvert år ?
Det du skal bruge i den første er en rutine som tjekker om timen er større eller mindre end 15.
et eksempel:
Dim current_hour current_hour = Hour(Now())
If current_hour > 15 And current_hour < 00 Then Response.write(Now()) Else Response.write( [kan ikke huske hvordan man får morgendagens dato udskrevet] ) End If
Den anden kan løses med en while konstruktion. Der findes en funktion i asp der hedder weekday() den returnerer et nummer for hver dag i ugen (mandag = 0, søndag = 7) så denne kan tjekkes.
While weekday() = 0 and week() = 41 Response.write(mandag i uge 41) Wend
Er ikke helt sikker på den sidste, da jeg adrig har brugt week() på den måde før, men metoden skulle vidst virke
Nej ikke helt - Jeg kan også se at jeg har fucket op i intervallerne... De intervaller jeg mener, må være (15:00 - 00:00 og 00:00 til 10:00) vil altid være faste. Så skal det tidspunkt brugeren indtaster holdes op med de intervaller og placeres i ét af dem, og så skal datoen angives udfra hvilket interval der passer... håber det er til at forstå.
Men Jamfighter har i hvert fald svaret på spørgsmål nummer 1. Så mangler jeg bare spørgsmål nummer 2, for jeg kan ikke gennemskue hvordan jeg finder datoen for mandag i uge 41. Jeg kan godt se logikken i weekday og week - men ikke hvordan jeg lige finder datoen.
Kom til at skrive forkert i mit sidste indlæg, det er søndag der er 1 og lørdag der er 7, og min hukommelse er åbenbart ikke for god, for VBS tilbyder ikke en Week() funktion. En masse jeg skal gøre op for her så :)
Desværre har jeg ikke lige kunnet finde en funktion, eller kommet i tanker om en god metode hvorpå man kan få løst dit problem, og selvom jeg har ledt en smule frem og tilbage på MSDN, må jeg desværre krybe til kors, og sige svar skyldig. Jeg fandt dog nogle sider på MSDN der måske kan komme dig til nytte:
[url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vbscripttoc.asp[/url] VB's reference, hvor man måske kan være heldig at finde noget. [url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/anch_iis.asp[/url] En side med mange gode og nyttige info om IIS.
En ide til en metode, kunne være at give hver dag i året et nummer, derefter finde det nummer der gælder for mandag uge 41, og så lave en funktion der returnerer en dato, på det nummer. Ved desværre ikke lige hvordan man kan gøre dette rent praktisk, så det bliver "pænt".
Det er helt ok Jamfighter - du skal i hvert fald have tak for din hjælp, specielt med svaret til spørgsmål 1. Du har tjent halvdelen af point, og dem får du så snart jeg får svar på min spørgsmål 2, eller jeg lukker spørgsmålet.
Har en ide til hvordan det kan laves men den er ekstremt eksperimentiel, og jeg tør næsten ikke sige det til nogen før jeg har testet den. Er bange får at blive hånt :D Ej, jeg vil lege lidt med min ide når jeg kommer hjem, så jeg kan få testet det ordenligt. måske virker det, og så får du selvfølgelig et stykke kode.
ej... Er i fuld gang med scriptet, og det går støt og roligt fremad, har fået løst et par problemer, men mangler stadig en del. håber på at have noget slutningen af idag.
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.