Avatar billede dj-sejler Praktikant
21. august 2004 - 20:46 Der er 13 kommentarer og
1 løsning

flette ugenr. ind i følgende script

Hej... jeg ville gerne have flettet en ugedag ind i følgende script:

dtmDate = Request.QueryString("date")
dtmToday = Date

If dtmDate = "" Then
  dtmDate = Date
Else
  dtmDate = CDate(dtmDate)
End if

intYear = Year(dtmDate)
strMonth = MonthName(Month(dtmDate))
intDayOfMonth = Day(dtmDate)
dtmFirstDate = DateAdd("d", (-intDayOfMonth)+1, dtmDate)
intFirstDay = Weekday(dtmFirstDate, vbMonday)
%>

<table class="kalender">
<tr class="kalender">
<td align="center" class="kalender">&nbsp;</td>
<td colspan="2" align="center">
    <a href="?side=minkalender&amp;minkal=30dage&amp;date=<%=DateAdd("m",-1,dtmFirstDate)%>">
    <img src="sider/kalender-prev.gif" class="billede" /></a>
</td>
<td colspan="3" align="center" valign="middle"><%=strMonth%>&nbsp;<%=intYear%></td>
<td colspan="2" align="center">
    <a href="?side=minkalender&amp;minkal=30dage&amp;date=<%=DateAdd("m",1,dtmFirstDate)%>">
    <img src="sider/kalender-next.gif" class="billede" /></a>
</td>
</tr>
<tr class="kalender">
<td align="center" class="kalender">uge</td>
<td align="center" class="kalender">Mandag</td>
<td align="center" class="kalender">Tirsdag</td>
<td align="center" class="kalender">Onsdag</td>
<td align="center" class="kalender">Torsdag</td>
<td align="center" class="kalender">Fredag</td>
<td align="center" class="kalender">Lørdag</td>
<td align="center" class="kalender">Søndag</td>
</tr>
<%
For y = 1 to 6
  If blnLast <> True Then
    Response.Write "<tr>"    For x = 1 to 7
      Response.Write "<td align='left' valign='top' class='kaldag'>"
      intLoopDay = intLoopDay + 1
      If intLoopDay >= intFirstDay Then
        dtmCurDate = DateAdd("d", intLoopDay-intFirstDay, dtmFirstDate)
        If Month(dtmCurDate) = Month(dtmFirstDate) Then
          If dtmCurDate = dtmToday Then
            Response.Write "<span class='today'>"
        else
            Response.Write "<span>"
          End If
      Response.Write Day(dtmCurDate)
      Response.write "</span><br />"
        Set rs = Server.CreateObject("ADODB.RecordSet")
        strSQL = "SELECT * FROM kalender where bid = '"& session("netid") &"' and ((fradato <= #"& ConvertToSqlDate2(dtmCurDate) &"# and #"& ConvertToSqlDate2(dtmCurDate) &"# <= tildato) or fradato = #"& ConvertToSqlDate2(dtmCurDate) &"#)"
        rs.Open strSQL, strDSN, 1
        if not rs.EOF then
        response.write "<a href='?side=minkalender&minkal=dag&date="&dtmCurDate&"' class='small'>&nbsp;&nbsp;se mere</a>"
        end if

          Response.Write "</td>"
          blnLast = False

            rs.Close
            Set rs = Nothing
        Else
          Response.Write "-</td>"
          blnLast = True
        End If
      Else
        Response.Write "-</td>"
        blnLast = True
      End if
    Next
  End If
Next
Response.Write "</tr>"
%>
</table>

Havde tænkt jeg at følgende sætning kunne sættes ind, men ved bare ikke hvor...


    response.write "<td align='center' valign='middle' class='kaldag'>" & DatePart("ww",dtmFirstDate) &"</td>"


Er der nogen der kan hjælpe?
Avatar billede eagleeye Praktikant
21. august 2004 - 20:52 #1
hvis du vil havde det over "uge Mandag Tirsdag ...
Kan det tilføjes sådan her:


<tr><td colspan="8" align='center' valign='middle' class='kaldag'><%= DatePart("ww",dtmFirstDate) %></td></tr>
<tr class="kalender">
<td align="center" class="kalender">uge</td>
<td align="center" class="kalender">Mandag</td>
<td align="center" class="kalender">Tirsdag</td>
Avatar billede eagleeye Praktikant
21. august 2004 - 20:55 #2
Lige en kommentar til at finde uge nummeret. Der er en bug i den kode som finder ugenummeret så en sjælden gang i mellem giver den uge 53 hvor det skulle være uge 1, se mere her:
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q200/2/99.asp&NoWebContent=1
Avatar billede dj-sejler Praktikant
21. august 2004 - 20:59 #3
ja... har kigge lidt på det... men fik ikke meget ud ad det.

Uge numret skulle gerne stå i venstre side af hver række...
Avatar billede eagleeye Praktikant
21. august 2004 - 21:08 #4
Så skal den næsten ind ved dette:

  Response.Write "<tr>"    For x = 1 to 7


sådan her:

  Response.Write "<tr>"
    response.write "<td align='center' valign='middle' class='kaldag'>" & DatePart("ww",dtmFirstDate) &"</td>"
    For x = 1 to 7
Avatar billede dj-sejler Praktikant
21. august 2004 - 21:15 #5
njar... så kommer den altså med foran hver dag...
Avatar billede eagleeye Praktikant
21. august 2004 - 21:22 #6
Det skal være lige før:  For x=1 to 7
Avatar billede dj-sejler Praktikant
21. august 2004 - 21:26 #7
nåe ja... men det var jo også det der var problemet :D

jeg havde nemlig prøvet det, men jeg kan ikke rigtig finde den rigtige da at sætte ind i "& DatePart("ww",dtmFirstDate) &"  fordi dtmFirstDate det er jo kun den første dag.

så der står kun 32 ved alle rækker...
Avatar billede eagleeye Praktikant
21. august 2004 - 21:32 #8
Det nok fordi det er dtmFirstDate som bruge i DatePart, prøv med dtmCurDate men så skal man også regne dtmCurDate. Så prøv at at rette det til:


    Response.Write "<tr>"
    dtmCurDate = DateAdd("d", intLoopDay-intFirstDay, dtmFirstDate)
    response.write "<td align='center' valign='middle' class='kaldag'>" & DatePart("ww",dtmCurDate) &"</td>"   
    For x = 1 to 7
Avatar billede dj-sejler Praktikant
21. august 2004 - 21:39 #9
Hvad siger du så til denne...?


    dtmCurDate = DateAdd("d", intLoopDay-intFirstDay, dtmFirstDate)
    response.write "<td align='center' valign='middle' class='kaldag'>"
    if DatePart("ww",dtmCurDate) = 53 then
      response.write "1"
        else
      response.write DatePart("ww",dtmCurDate)
    end if
    response.write "</td>"

med hensyn til uge 53
Avatar billede dj-sejler Praktikant
21. august 2004 - 21:40 #10
men du skal i hvert fald svare...
Avatar billede eagleeye Praktikant
21. august 2004 - 21:43 #11
Ok :)

Jeg ville bruge denne funktion da der også nogle gange er en uge 53 hvor det skal være 53 :)


Function WOY (dato) 'Week of Year
  WOY = DatePart("ww", dato, vbMonday, vbFirstFourDays)
  If WOY > 52 Then
    If DatePart("ww", dato + 7, vbMonday, vbFirstFourDays) = 2 Then WOY = 1
  End If
End Function



Så linje rettes fra:
response.write "<td align='center' valign='middle' class='kaldag'>" & DatePart("ww",dtmCurDate) &"</td>"   

Til:

response.write "<td align='center' valign='middle' class='kaldag'>" & WOY(dtmCurDate) &"</td>"
Avatar billede dj-sejler Praktikant
21. august 2004 - 21:49 #12
Der er noget galt... den giver en uge for lidt
Avatar billede eagleeye Praktikant
21. august 2004 - 21:56 #13
Ja ok, det den måde dtmCurDate bliver regnert ud på før uge udregningen prøv at rette:

For y = 1 to 6
  If blnLast <> True Then
    Response.Write "<tr>"
    dtmCurDate = DateAdd("d", intLoopDay-intFirstDay, dtmFirstDate)


Til dette:

For y = 1 to 6
  If blnLast <> True Then
    Response.Write "<tr>"
    dtmCurDate = DateAdd("d", (y-1)*7, dtmFirstDate)
Avatar billede dj-sejler Praktikant
21. august 2004 - 22:01 #14
Så virker det :D
mange tak
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