Avatar billede martins Nybegynder
11. august 2004 - 11:33 Der 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 ?


Jeg håber der er nogen der kan hjælpe :-)
Avatar billede folsgaard Nybegynder
11. august 2004 - 11:52 #1
var det sådan noget ?

<%
tidspunkt = #16:00:00#

if Time > tidspunkt then
response.write "det er den " & date()+1
else
response.write "det er den " & date()
end if
%>
Avatar billede jamfighter Nybegynder
11. august 2004 - 11:55 #2
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
Avatar billede martins Nybegynder
11. august 2004 - 11:56 #3
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å.
Avatar billede martins Nybegynder
11. august 2004 - 11:56 #4
Jamfighter - det er ikke til dit svar jeg svarede :-) Jeg kigger lige på det.
Avatar billede folsgaard Nybegynder
11. august 2004 - 11:57 #5
hvad skal der så returneres mellem kl. 10 og 15 ?
Avatar billede martins Nybegynder
11. august 2004 - 12:00 #6
Jeg kan se at jeg bare blev forvirret, for Jamfighters forslag virker. Jeg blev bare forvirret og troede at løkken aldrig ville ende, hvis du forstår.
Avatar billede martins Nybegynder
11. august 2004 - 12:02 #7
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.
Avatar billede jamfighter Nybegynder
11. august 2004 - 14:18 #8
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".
Avatar billede jamfighter Nybegynder
11. august 2004 - 14:18 #9
hov en lille fejl i linksne, fjern de sidste 5 karakterer i hvert link :)
Avatar billede martins Nybegynder
11. august 2004 - 14:25 #10
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.
Avatar billede jamfighter Nybegynder
11. august 2004 - 14:31 #11
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.
Avatar billede martins Nybegynder
11. august 2004 - 14:42 #12
Det lyder bare godt - U' da' man :)
Avatar billede jamfighter Nybegynder
13. august 2004 - 16:22 #13
du er da besværlig =)

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.
Avatar billede jamfighter Nybegynder
16. august 2004 - 09:39 #14
scriptet begynder at ligne noget, mangler kun noget afpudsning, og en lille funktion der ikke virker efter hensigten.

Er stadig på det :D
Avatar billede martins Nybegynder
23. august 2004 - 12:27 #15
Hehe ok - det lyder godt :-)
Avatar billede martins Nybegynder
19. november 2004 - 11:15 #16
Du får point for din tid - tak for det ;)
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