webForumDet fria alternativet

Datum

6 svar · 521 visningar · startad av nille99

nille99Medlem sedan aug. 2002352 inlägg
#1

Jag försöker få fram datum från en databas
problemet är att i databasen bara har vilken vecka och vilken vecko dag det är, kanm jag från vecka nr och vilken vecko dag få fram datum?

nille99Medlem sedan aug. 2002352 inlägg
#2

Jag kom på det själv

<% Function ListDate(Dyear) %>
<% Datum1 = Cdate(Dyear & "-01-01") %>
<% Datum2 = Cdate(Dyear & "-12-31") %>

<% Do While Datum1 <= Datum2 %>

<% if DatePart("ww", Datum1) = 7 and WeekDay(Datum1) = 7 Then %>
<%=Datum1%><BR>
<% End If %>

<% Datum1 = DateAdd("d",1,Datum1) %>

<% Loop %>

<% End Function %>
<% ListDate(Year(Date)) %>

@ndersMedlem sedan juni 200032 969 inlägg
#3

Det är väldigt onödigt att ha kontext-switchar runt varje rad. Svårt att läsa blir det också.

I övrigt: Använd [kod]-taggar och funktionen "Acceptera som slutgiltigt svar".

voigtann1Medlem sedan juni 20019 519 inlägg
#4

Som @nders skrev onödigt... sen har du Response.Write i din Funktion? (=) Då hade jag antingen skrivit:

'' Om Du vill ha den som en funktion ''
Function GetWeek(dYear)
	Dim Date1
	Date1 = Cdate(Dyear & "-01-01")
	
	For i = 1 to DateDiff("d",Date1,dYear & "-12-31")
		If DatePart("ww",Date1) = 7 And Weekday(Date1) = 7 Then
			GetWeek = Date1 & "<BR>"
			Exit For
		End If
		Date1 = DateAdd("d",1,date1)
	Next
End Function

Response.Write ListDate(Year(Date())
'Eller spara den i en Variabel:
Dim dTheDate
dTheDate = ListDate(Year(Date()))

'' Eller Sub

Sub GetWeek(dYear)
	Dim Date1
	Date1 = Cdate(Dyear & "-01-01")
	
	For i = 1 to DateDiff("d",Date1,dYear & "-12-31")
		If DatePart("ww",Date1) = 7 And Weekday(Date1) = 7 Then
			Response.Write Date1 & "<BR>"
			Exit For
		End If
		Date1 = DateAdd("d",1,date1)
	Next
End Sub

ListDate Year(Date)

En funktion Retunera något medans en Sub körs direkt utan att retunera någon kod.

oskarsMedlem sedan nov. 20051 317 inlägg
#5

Som @nders säger. Kör så här istället:

<%
	Function ListDate(Dyear) 
	Datum1 = Cdate(Dyear & "-01-01") 
	Datum2 = Cdate(Dyear & "-12-31") 
	
	Do While Datum1 <= Datum2 
	
	if DatePart("ww", Datum1) = 7 and WeekDay(Datum1) = 7 Then 
	=Datum1<BR>
	End If 
	
	
	Datum1 = DateAdd("d",1,Datum1) 
	
	Loop 
	
	End Function 
	ListDate(Year(Date))
%>
voigtann1Medlem sedan juni 20019 519 inlägg
#6

Nej Oskars.. = inne i en funktion går inte ;) ersätt den med en Response.Write och ha den som en Sub.

oskarsMedlem sedan nov. 20051 317 inlägg
#7

gah, kopierade ju bara hans :D ville ta bort alla <% %> ;)

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