webForumDet fria alternativet

Veckonummer

3 svar · 429 visningar · startad av ironhead

ironheadMedlem sedan mars 20011 346 inlägg
#1

Hej!

Skulle vilja skriva ut veckonummer ovanför början på varje vecka,
hur göra?
Denna kod visar månad för månad:

<html>
  <body>
<%
FirstRun = 0

'# Hämta datum från QS eller dagensdatum
If Request.Querystring("date")<>"" Then
  dtmDate = Request.Querystring("date")
 Else
  dtmDate = Date()
End IF

'# Gör om datum till namn
Function sUpperMonthName(sMonth)
  sUpperMonthName = UCase(Left(sMonth,1)) & Right(sMonth, Len(sMonth)-1)
End Function

sMonthName = MonthName(Month(dtmDate))

Response.Write "<table width=""800"" cellpadding=""2"" cellspacing=""2"" border=""1""><tr>"
	Response.write "<td><a href='1.asp?date=" & DateAdd("m", -1, dtmDate) & "'>«</a>&nbsp;</td>"
	Response.Write "<td align=""center""><b>" & sUpperMonthName(sMonthName) & "</b></td>"
	Response.write "<td align=""right"">&nbsp;<a href='1.asp?date=" & DateAdd("m", 1, dtmDate) & "'>»</a></td>"
Response.Write "</tr></table>"

%>
    <table width="800" cellpadding="2" cellspacing="2" border="1">
      <tr>
       <td>Måndag</td><td>Tisdag</td><td>Onsdag</td><td>Torsdag</td><td>Fredag</td><td>Lördag</td><td>Söndag</td>
      </tr>
     <table>
       
    <table width="800" cellpadding="2" cellspacing="2" border="1">
      <tr>
<%

For i = 1 To WeekDay(DateSerial(Year(dtmDate), Month(dtmDate), "01"), vbMonday) - 1
  Response.Write("        <td>&nbsp;</td>" & vbCrLf)
  intCount = intCount + 1
Next

intDays = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(dtmDate), Month(dtmDate), "01"))))

For i = 1 To intDays
  If intCount Mod 7 = 0 AND intCount > 0 Then Response.Write("      </tr><tr>" & vbCrLf)

  Response.Write("        <td>" & i & "<br><input type=""text"" name=""id"" size=""10""></td>" & vbCrLf)
  intCount = intCount + 1
Next

If intCount Mod 7 > 0 Then
  For i = (intCount Mod 7) + 1 To 7
    Response.Write("        <td> </td>" & vbCrLf)
  Next
End If

%>
      </tr>
    </table>
  </body>
</html>
ironheadMedlem sedan mars 20011 346 inlägg
#2

*hmmm* Man funkar inte så bra idag...gjorde såhär:

For i = 1 To WeekDay(DateSerial(Year(dtmDate), Month(dtmDate), "01"), vbMonday) - 1
  If FirstRun = 0 Then
  Response.Write "<tr><td colspan=""7"" bgcolor=""#F1F1F1""><i>Vecka: " & DatePart("WW", Left(dtmDate,8) & i & "", 2, 2) & "</i></td></tr>"
  FirstRun = 1
  End If
  Response.Write("        <td>&nbsp;</td>" & vbCrLf)
  intCount = intCount + 1
Next

If WeekDay(DateSerial(Year(dtmDate), Month(dtmDate), "01"), vbMonday) - 1=0 Then
  Response.Write "<tr><td colspan=""7"" bgcolor=""#F1F1F1""><i>Vecka: " & DatePart("WW", Left(dtmDate,8) & i & "", 2, 2) & "</i></td></tr>"
ENd If
   If intCount Mod 7 = 0 AND intCount > 0 Then Response.Write("      </tr><tr><td colspan=""7"" bgcolor=""#F1F1F1""><i>Vecka: " & DatePart("WW", Left(dtmDate,8) & i & "", 2, 2) & "</i></td></tr><tr>" & vbCrLf)
J.N.Medlem sedan apr. 20031 660 inlägg
#3

ironhead skrev:

*hmmm* Man funkar inte så bra idag...gjorde såhär:

   If intCount Mod 7 = 0 AND intCount > 0 Then Response.Write("</tr><tr><td colspan=""7"" bgcolor=""#F1F1F1""><i>Vecka: " & DatePart("WW", Left(dtmDate,8) & i & "", 2, 2) & "</i></td></tr><tr>" & vbCrLf)

Synd.
Du får gärna dela med dig av vad som inte fungerar, annars blir det svårt.

Du kanske måste sätta CDate runt DataPart för att få datum-i:et att hänga ihop?
Det bör fungera lika bra, men har du inte datumet i enklare form än detta, dvs måste du använda i:et för att veta datumet?

ironheadMedlem sedan mars 20011 346 inlägg
#4

J.N. skrev:

ironhead skrev:

*hmmm* Man funkar inte så bra idag...gjorde såhär:

   If intCount Mod 7 = 0 AND intCount > 0 Then Response.Write("</tr><tr><td colspan=""7"" bgcolor=""#F1F1F1""><i>Vecka: " & DatePart("WW", Left(dtmDate,8) & i & "", 2, 2) & "</i></td></tr><tr>" & vbCrLf)

Synd.
Du får gärna dela med dig av vad som inte fungerar, annars blir det svårt.

Du kanske måste sätta CDate runt DataPart för att få datum-i:et att hänga ihop?
Det bör fungera lika bra, men har du inte datumet i enklare form än detta, dvs måste du använda i:et för att veta datumet?

Det var bara det att jag hade hårdkodat startdatum till "01" vilket gjorde att första veckan blev fel då jag började på ett nytt år.

t.ex. v53 är både för December/Januari 2004/05 och då blev det fel

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)