Avatar billede riishoj Nybegynder
25. november 2002 - 19:51 Der er 35 kommentarer og
1 løsning

Finde datoen på første dag i ugen

Denne funktion skulle returnere datoen på den første dag i den aktuelle uge

Response.Write getDate(DatePart("ww", Date(), vbMonday, vbFirstFourDays), "01-01-2002")

Jeg kan bare ikke få den til at virke. Får fejlen

Der opstod en Microsoft VBScript-kompileringsfejl fejl '800a0401'

Slut på sætning var ventet

/skoleskema2/dato2.asp, linje 16

Response.Write DatePart("ww", Date(), vbMonday, vbFirstFourDays), "01-01-2002")
------------------------------------------------------------------------------^
Er der nogen som kan se hvad jeg gør galt?
Avatar billede ducks Nybegynder
25. november 2002 - 20:03 #1
Burde det her ikke være det samme :\

Response.Write getDate(DatePart("ww", Date(), vbMonday, vbFirstFourDays), "01-01-2002")
Response.Write DatePart("ww", Date(), vbMonday, vbFirstFourDays), "01-01-2002")
Avatar billede ducks Nybegynder
25. november 2002 - 20:04 #2
Fejlen i den nederste er ihvertfald at du brugere en ')' mere end '('
Avatar billede riishoj Nybegynder
25. november 2002 - 20:12 #3
Hvis jeg bruger

Response.Write DatePart("ww", Date(), vbMonday, vbFirstFourDays), "01-01-2002")

får jeg også fejlen

Der opstod en Microsoft VBScript-kompileringsfejl fejl '800a0401'

Slut på sætning var ventet

/skoleskema2/dato2.asp, linje 16

Response.Write DatePart("ww", Date(), vbMonday, vbFirstFourDays), "01-01-2002")
------------------------------------------------------------------------------^
Avatar billede hnteknik Novice
25. november 2002 - 20:15 #4
vbFirstFourDays),

fjern lige parentesen

Henrik
Avatar billede riishoj Nybegynder
25. november 2002 - 20:24 #5
Har prøvet at fjerne parentesen i begge eksempler. Virker stadig ikke.
Funktionen er fra magik.dk, hvor den tilsyneladende virker ok.

http://www.magik.dk/funktioner/6/
Avatar billede eagleeye Praktikant
25. november 2002 - 22:15 #6
Hvilken dag vil du finde?

Jeg har denne function som finde mandag i en given uge og år:


function findMandag(uge,aar)
d = DateSerial(aar, 1, 1)    ' 1/1/i år
'find mandag i uge 1
If DatePart("ww", d, 2, 2) = 1 Then    'Hvis 1/1 er i uge 1
  While(DatePart("w", d, 2, 2) <> 1)    'find sidste mandag
    d = DateAdd("d", -1, d)
  WEnd
Else
  While(DatePart("ww", d, 2, 2) <> 1)  'find næste mandag
    d = DateAdd("d", 1, d)
  WEnd
End If
findMandag = DateAdd("d", 7*(uge-1), d) 'juster til ugenummer, mandag
end function
Avatar billede riishoj Nybegynder
25. november 2002 - 22:20 #7
Yes, der er lige det jeg mangler. Ved ikke om du kan huske mit skoleskema med dagene mandag til fredag. Skemaet hentes ind på ugenummeret, og så vil jeg gerne have datoen skrevet på hver dag i ugen, dvs. uge 48 skema skriver mandag 25.11.02, tirsdag 26.11.02 osv.
Avatar billede eagleeye Praktikant
25. november 2002 - 22:22 #8
Avatar billede riishoj Nybegynder
25. november 2002 - 22:29 #9
Det må jeg lige kigge nærmere på.
Jeg prøvede din funtion, men fik returneret en blank side. Hvad skal jeg gøre ud over at sætte den i <%.......%>
Avatar billede riishoj Nybegynder
25. november 2002 - 22:49 #10
Hvordan får jeg udskrevet funktionen?
Avatar billede eagleeye Praktikant
25. november 2002 - 22:54 #11
Du kan udskrive med:

Response.write findMandag(48,2002)  ' Så udskriver den mandagen i uge 48 år 2002
Avatar billede riishoj Nybegynder
25. november 2002 - 23:08 #12
Ja, det er rigtigt, men er der ikke en måde, så jeg ikke behøver at skrive ugenummeret. Der findes jo en måde at finde ugenummeret på.
Avatar billede eagleeye Praktikant
25. november 2002 - 23:11 #13
ugeNr = DatePart("ww", Date, vbMonday, vbFirstFourDays)
Response.write findMandag(ugeNr,Year(Date))
Avatar billede riishoj Nybegynder
25. november 2002 - 23:16 #14
Jeg er jo ikke så kvik til det her. Hvor skal jeg sætte det ind i funktionen fra fra. Prøvede at sætte det ind til sidst og fik fejlen

Der opstod en Microsoft VBScript-kompileringsfejl fejl '800a0414'

Der kan ikke bruges parenteser ved kald af en Sub

/skoleskema2/dato3.asp, linje 29

findMandag(ugeNr,Year(Date))
----------------------------^
Avatar billede eagleeye Praktikant
25. november 2002 - 23:19 #15
Så skal det være:

dato = findMandag(ugeNr,Year(Date))
Avatar billede riishoj Nybegynder
25. november 2002 - 23:21 #16
I stedet for hvad?
Avatar billede eagleeye Praktikant
25. november 2002 - 23:23 #17
findMandag er en function som returnere en værdi til en variable og hvis man skriver:

findMandag(ugeNr,Year(Date))

kommer fejlen for så tror den det er en procedure man kalder..:

dato = findMandag(ugeNr,Year(Date))
Avatar billede riishoj Nybegynder
25. november 2002 - 23:30 #18
Undskyld, men nu er jeg helt rundt på gulvet og blander sikkert tingene sammen. Kan du ikke hurtigt cutte og paste scriptet, som returnerer dato på mandag i uge 48, vel og mærke ugen fundet som en variabel. Hvis du synes det er blevet sent, kan jeg selvfølgelig godt vente til i morgen.
Avatar billede eagleeye Praktikant
25. november 2002 - 23:35 #19
Denne linie finder ugenummer på den uge man er i lige nu:

ugeNr = DatePart("ww", Date, vbMonday, vbFirstFourDays)

Denne linier finde mangen i den uge som er i ugeNr som er denne uge + det årstal som kommer ud af denne Year(Date) som så er i år:

dato = findMandag(ugeNr,Year(Date))

Så kan du udskrive dato'en:

Response.write "Mandag i uge " & ugeNr & " er den " & dato
Avatar billede riishoj Nybegynder
25. november 2002 - 23:42 #20
Er det her rigtigt

<%
ugeNr = DatePart("ww", Date, vbMonday, vbFirstFourDays)
dato = findMandag(ugeNr,Year(Date))
Response.write "Mandag i uge " & ugeNr & " er den " & dato
%>
jeg får fejlen

Der opstod en Microsoft VBScript-kørselsfejl fejl '800a000d'

Typerne passer ikke sammen: 'findMandag'

/skoleskema2/dato4.asp, linje 13
Avatar billede eagleeye Praktikant
25. november 2002 - 23:50 #21
det lyder underligt.. og du har lagt functionen findMandag ind i asp filen?
Avatar billede riishoj Nybegynder
25. november 2002 - 23:55 #22
Ups, det var det der var galt. Nu virker det. 1000 tak. Send lige et svar
Avatar billede eagleeye Praktikant
25. november 2002 - 23:58 #23
Prøv evt i toppen at tilføje:

<% Session.LCID = 1030 %>

for DK dato format.
Avatar billede riishoj Nybegynder
26. november 2002 - 00:02 #24
OK, Nu ved jeg hvordan jeg finder datoen. Bliver nok nødt til at oprette et nyt spørgsmål i morgen for at få det puttet rigtigt ind i mit skoleskema. Håber du vil kigge på det:)
Avatar billede eagleeye Praktikant
26. november 2002 - 00:05 #25
Ja jeg vil kigge efter det :)
Avatar billede eagleeye Praktikant
26. november 2002 - 00:28 #26
du kan udskrive fra mandag til fredag sådan her i et loop:

<% Session.LCID = 1030 %>


ugeNr = DatePart("ww", Date, vbMonday, vbFirstFourDays)
dato = findMandag (ugeNr,Year(Date))

for i = 1 to 5
  Response.write WeekdayName(DatePart("W", dato, 1)) & " den " & dato & "<br>"
  dato = DateAdd("d",1,dato)
next


Godnat og sov godt.
Avatar billede riishoj Nybegynder
26. november 2002 - 13:26 #27
Jeg har prøvet din funktion i mit skema. Hvis jeg holder mig til versionen uden loop kan jeg godt få skrevet datoen om mandagen. Hvis jeg så skifter uge enten frem eller tilbage, så har det ingen indflydelse på datoen, altså mandag i uge 47 er også 25.11.02. Hvordan fikser man det?
Hvis jeg prøver at indsætte funktionen med loop, så virker det slet ikke, men jeg er ikke sikker på at jeg har sat den rigtig ind.
Skemaet med loop ser sådan ud:

<html>

<head>
<title>Skema</title>
</head>

<body>

<table border="1" width="100%" cellspacing="0" cellpadding="0" bordercolor="#0000FF" bordercolorlight="#0000FF" bordercolordark="#FFFFFF">
  <tr>
    <td width="125%" colspan="6" bgcolor="#669999">
      <p align="center">
     
<font color="#FFFFFF" face="Verdana" size="5">
     
Uge</font>&nbsp <%
If Request.Querystring("uge") <> "" Then
      uge = Request.Querystring("uge")
    Else
      uge = DatePart("ww",date())
    End If
   
    Response.Write "<font color=white face=verdana size=5>"
    Response.Write uge
    %>
</td>
  </tr>
  <tr>
    <td width="14%" bgcolor="#669999">&nbsp;</td>
    <td width="18%" bgcolor="#669999">
      <p align="center">
      <%
function findMandag(uge,aar)
d = DateSerial(aar, 1, 1)    ' 1/1/i år
'find mandag i uge 1
If DatePart("ww", d, 2, 2) = 1 Then    'Hvis 1/1 er i uge 1
  While(DatePart("w", d, 2, 2) <> 1)    'find sidste mandag
    d = DateAdd("d", -1, d)
   
  WEnd
Else
  While(DatePart("ww", d, 2, 2) <> 1)  'find næste mandag
    d = DateAdd("d", 1, d)
  WEnd
End If
findMandag = DateAdd("d", 7*(uge-1), d) 'juster til ugenummer, mandag
end function
ugeNr = DatePart("ww", Date, vbMonday, vbFirstFourDays)
dato = findMandag(ugeNr,Year(Date))
for i = 1 to 5

    Response.write "<font color=FFFFFF face=Verdana size=2><b>WeekdayName(DatePart("W", dato, 1)) & " den " & dato & "<br>"</b></font></td>"
      dato = DateAdd("d",1,dato)
      next
%>
    <td width="18%" bgcolor="#669999">
      <p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Tirsdag</b></font></td>
    <td width="18%" bgcolor="#669999">
      <p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Onsdag</b></font></td>
    <td width="18%" bgcolor="#669999">
      <p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Torsdag</b></font></td>
    <td width="18%" bgcolor="#669999">
      <p align="center"><font color="#FFFFFF" face="Verdana" size="2"><b>Fredag</b></font></td>
  </tr>
  <tr>
    <td width="14%" height="40" align="center" bgcolor="#669999"><font face="Verdana" size="2" color="#FFFFFF">1. time</font></td>
   
 
    <td width="18%" height="40" bgcolor="#FFFFFF"><font color="#FFFFFF"><!-- Luft -->&nbsp;</font></td>
    <td width="18%" height="40" bgcolor="#FFFFFF"><font color="#FFFFFF"><!-- Luft -->&nbsp;</font></td>


    <td width="18%" height="40" bgcolor="#FFFFFF"><font color="#FFFFFF"><!-- Luft -->&nbsp;</font></td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr>
    <td width="14%" height="40" align="center" bgcolor="#669999"><font face="Verdana" size="2" color="#FFFFFF">2. time</font></td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr>
    <td width="14%" height="40" align="center" bgcolor="#669999"><font face="Verdana" size="2" color="#FFFFFF">3. time</font></td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr>
    <td width="14%" height="40" align="center" bgcolor="#669999"><font face="Verdana" size="2" color="#FFFFFF">4. time</font></td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr>
    <td width="14%" height="40" align="center" bgcolor="#669999"><font face="Verdana" size="2" color="#FFFFFF">5. time</font></td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr>
    <td width="14%" height="40" align="center" bgcolor="#669999"><font face="Verdana" size="2" color="#FFFFFF">6. time</font></td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF">&nbsp;</td>
  </tr>
  <tr>
    <td width="14%" height="40" align="center" bgcolor="#669999"><font face="Verdana" size="2" color="#FFFFFF">7. time</font></td>
    <td width="18%" height="40" bgcolor="#FFFFFF"><!-- Luft -->&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF"><!-- Luft -->&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF"><!-- Luft -->&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF"><!-- Luft -->&nbsp;</td>
    <td width="18%" height="40" bgcolor="#FFFFFF"><!-- Luft -->&nbsp;</td>
  </tr>
  </table>
  <br>
  <%
If request.querystring("uge") <> "" Then
  uge = request.querystring("uge")
Else
  uge = DatePart("ww",date())
End If
fuge = uge - 1
If fuge < 1 then
  fuge = 52
End If
Response.Write"<A HREF='skema.asp?uge=" & fuge & "'>Forrige uge<&nbsp></A>"


If request.querystring("uge") <> "" Then
  uge = request.querystring("uge")
Else
  uge = DatePart("ww",date())
End If
nuge = uge + 1
If nuge > 52 then
  nuge = 1
End If
Response.Write"<A HREF='skema.asp?uge=" & nuge & "'>Næste uge</A>"%><br>
<p><a href="indsaet_opgave_form.asp">Indsæt opgave</a></p>
</body>
</html>
Avatar billede riishoj Nybegynder
26. november 2002 - 14:30 #28
Jeg skal bruge skemaet i forbindelse med et lokalereservationssystem. Det virker nu på den måde, at man starter med at vælge dato ud fra en kalender, dernæst vælges lokale via et link til selve bookingside, hvor man så booker en tid i lokalet den pågældende dag. Det jeg gerne vil have lavet, er et skema, der  viser om lokalet er optaget. Er det noget du kan hjælpe med? Vi taler selvfølgelig om flere point her. Jeg har en ide om, hvordan det skal laves, men problemet er, at man ikke vælger ugenummer når man booker, men dato, og skemaet viser jo de forskellige uger. Ud fra datoer og tidspunkter på dagen skal man jo så kigge i db'en for at se om lokalet er optaget den pågældende uge, dag og time. Det må kunne lade sig gøre.
Avatar billede riishoj Nybegynder
26. november 2002 - 21:26 #29
eagleeye>>Tror du, at du kan hjælpe mig? Jeg lukker og slukker for i dag og går i seng, da jeg er snot forkølet:(
Avatar billede hnteknik Novice
26. november 2002 - 21:36 #30
Hm - Jeg har noget proporitær kode, som jeg har gramset lidt i.
Du vælger datoen ud fra uge/måneds/kvartals kalender og får ressourcer linet op horisontalt og vælger start tidspunkt ud fra en ½ times inddeling af dagen. Der kan bookes over flere dage med uden weekend. Der er ingen admn med i koden - det må du selv pusle med.

Stik mig en mail adresse og jeg zipper det op til dig. Det er kun for at blive inspireret - du må selv bokse noget sammen - ok.

Henrik
Avatar billede riishoj Nybegynder
26. november 2002 - 21:42 #31
Lyder spændende. Det vil jeg gerne kigge på.
riishoj@c.dk
Avatar billede hnteknik Novice
26. november 2002 - 22:02 #32
In your mail. Test it and hopefully be wise.
Det er imod mit princip ikke at dumpe koden her. Men jeg har ikke selv lavet scriptet og det er nok den eneste måde, du får en mere sammensat kode på.

Enjoy Henrik
Avatar billede riishoj Nybegynder
27. november 2002 - 11:19 #33
Eagleeye>> Når jeg indsættet din kode med loop, får jeg fejlen

Der opstod en Microsoft VBScript-kompileringsfejl fejl '800a0401'

Slut på sætning var ventet

/booking/skema2.asp, linje 52

Response.write "<font color=FFFFFF face=Verdana size=2><b>WeekdayName(DatePart("W", dato, 1)) & " den " & dato & "<br>"</font></td>"
--------------------------------------------------------------------------------^
Avatar billede hnteknik Novice
27. november 2002 - 11:29 #34
><b>" & WeekdayName

Fik du noget ud af koden ???
Avatar billede hnteknik Novice
27. november 2002 - 11:32 #35
og & "<br></font></td>"
Avatar billede riishoj Nybegynder
27. november 2002 - 17:53 #36
Tak for koden. Kan ikke umiddelbart få den til at virke, det er noget med db connection i function.asp. Det skal jeg dog nok få løst, men ligger pt. underdrejet med influenza, så hovedet fungerer ikke så godt.
Mht. til loopet, så kan dine rettelser få mandag den 25-11-02 til at komme frem, men ikke tirsdag, onsdag osv. Og hvad med bagud?
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