01. april 2006 - 15:22
#1
>> hvordan jeg man vise årets mdr. nu
Datoen lige nu ligger i Date(). Du kan så bruge month funktionen finde måned:
maaned = Month(date)
>>hvor mange dage der er i denne mdr.
Du kan lave en funktion som regner det ud, man skal kende måned og år for at finde ud af hvor mange dage der er i en måned hvis den skal tage højde skudår februar.
function dageimaaned(maaned, aar)
dato = DateSerial(aar, maaned, 1)
dageimaaned = DateDiff("d", dato, DateAdd("m",1,dato))
end function
og så kande den sådan her hvis du vil kende hvor mnage dage der februar 2006:
dage = dageimaaned(2,2006)
>>amt hvormange uger der er i denne mdr. samt hvad de hedder
Du kan lave en funktion som finder og lister alle ugerne i en måned så kan man tælle dem ud fra det.
function ugerimaaned(maaned, aar)
tmp = ""
dato = DateSerial(aar, maaned, 1)
datoSlut = DateSerial(aar, maaned+1, 1)
do while dato < datoSlut
ugenr = DatePart("ww", dato)
tmp = tmp & "," & ugenr
dato = DateAdd("d", 7, dato)
loop
'tjek om sidste dag i måned er i en ny ude:
dato = DateSerial(aar, maaned+1, 0)
ugenr = DatePart("ww", dato)
if inStr(1, tmp & ",", "," & ugenr & ",") = 0 then tmp = tmp & "," & ugenr
ugerimaaned = mid(tmp,2)
end function
Kald den sådan her:
ugerliste = ugerimaaned(2,2006)
antalUger = ubound(split(ugerimaaned,","))+1
Du kan bygge det hele sammen på en side som får en måned+år via querystirng.
<%
session.LCID = 1030
maaned = Request.QueryString("month")
aar = Request.QueryString("year")
if not (isNumeric(maaned) and isNumeric(aar) and maaned<>"" and aar<>"") then
maaned = Month(date)
aar = Year(date)
end if
Response.Write "Data for " & MonthName(maaned) & " måned i år " & aar
Response.Write "<br><br><br>"
ugeliste = ugerimaaned(maaned,aar)
Response.write "Antal dage i denne måned : " & dageimaaned(maaned, aar) & "<br>"
Response.write "<br>"
Response.write "Ugenumre i denne måned : " & ugeliste & "<br>"
Response.write "<br>"
Response.write "Antal uger i denne måned : " & ubound(split(ugeliste, ","))+1 & "<br>"
Response.write "<br>"
Response.write "<br>"
tmpDato=DateSerial(aar, maaned-1, 1)
Response.write "<a href=""?month=" & month(tmpDato) & "&year=" & Year(tmpDato) & """>Forrige måned</a>"
Response.write " - "
tmpDato=DateSerial(aar, maaned+1, 1)
Response.write "<a href=""?month=" & month(tmpDato) & "&year=" & Year(tmpDato) & """>Næste måned</a>"
'Funktioner
function dageimaaned(maaned, aar)
dato = DateSerial(aar, maaned, 1)
dageimaaned = DateDiff("d", dato, DateAdd("m",1,dato))
end function
function ugerimaaned(maaned, aar)
tmp = ""
dato = DateSerial(aar, maaned, 1)
datoSlut = DateSerial(aar, maaned+1, 1)
do while dato < datoSlut
ugenr = DatePart("ww", dato)
tmp = tmp & "," & ugenr
dato = DateAdd("d", 7, dato)
loop
'tjek om sidste dag i måned er i en ny ude:
dato = DateSerial(aar, maaned+1, 0)
ugenr = DatePart("ww", dato)
if inStr(1, tmp & ",", "," & ugenr & ",") = 0 then tmp = tmp & "," & ugenr
ugerimaaned = mid(tmp,2)
end function
%>
01. april 2006 - 16:25
#3
Ja det må siges at være grundstene i en kalender.
Når man vil udskrive det som dette:
S M T O T F L
1
2 3 4 5 6 7 8
9 .............
har man også behov for at vide hvilken er første dag i måned (man,tir,ons..) det man gøres med weekday(dato) og navnet findes med weekdayname(weekday)
dato = DateSerial(2006,4,1)
foersteDag = weekday(dato) 'give 1..7 for 1=søndag, 2=mandag..... 7=lørdag