PplelkesMedlem sedan mars 2002823 inlägg Men alltså - jag blir galen
Om jag ändrar till
Session.LCID = 1053
dteDate = 2003-07-10
intWeekDay = WeekDay(dteDate, vbMonday)
sWeekDayName = WeekDayName(intWeekDay,,vbMonday)
Response.Write intWeekDay & " = " & sWeekDayName
så får jag som det borde
4 = torsdag
men:
dteDate = 2003-07-07
ger
7 = söndag
och
dteDate = 2003-07-11
ger
dteDate = 2003-07-11
Fattar inte ett dugg*snyftsnyft*
PplelkesMedlem sedan mars 2002823 inlägg Blir bara mystiskare och mystiskare om jag tar koden
<%
<%
Session.LCID = 1053
dteDate = 2003-07-11
intWeekDay = WeekDay(dteDate, vbMonday)
sWeekDayName = WeekDayName(intWeekDay,,vbMonday)
Response.Write dteDate & "<BR>"
Response.Write intWeekDay & " = " & sWeekDayName
och ändrar datumer manuellt -Så blir allt det bra ENDAST för torsdagar i juli-03. Ni kan själva se detta Om jag däremot gör om det hela till en formulär för datum ändring
<FORM ACTION="" METHOD="post">
<TABLE WIDTH="500" BORDER="3" CELLSPACING="5" CELLPADDING="5">
<TR>
<TD>Välj datum (ÅÅÅÅ-MM-DD):</TD>
<TD><INPUT NAME="year" TYPE="text" SIZE="75"></TD>
</TR>
<TR ALIGN="RIGHT" VALIGN="MIDDLE"><TD><INPUT NAME="in" TYPE="submit" VALUE="Visa vald datum"></TD></TR>
</TABLE>
<%
Session.LCID = 1053
dteDate = Request.Form("year")
intWeekDay = WeekDay(dteDate, vbMonday)
sWeekDayName = WeekDayName(intWeekDay,,vbMonday)
Response.Write dteDate & "<BR>"
Response.Write intWeekDay & " = " & sWeekDayName
%>
då funkar det perfekt. Ni kan själva prova detta
PplelkesMedlem sedan mars 2002823 inlägg ngn som har lösningen till detta??
@ndersMedlem sedan juni 200032 967 inläggNär du i koden specificerar datumet, så måste du ha någonting runt. Du kan använda # för att det ska vara datumtyp.
dteDate = #2003-07-11#
Annars är det samma sak som att skriva dteDate = 1985.
Mvh
PplelkesMedlem sedan mars 2002823 inlägg tack @nders, nu kan jag äntligen fortsätta längs den snåriga stigen mot att bemästra datum med VBScript
@ndersMedlem sedan juni 200032 967 inläggVarsågod, och lycka till i fortsättningen!
PplelkesMedlem sedan mars 2002823 inlägg tack, räknar med att behöva hjälp även i fortsättningen, och hoppas få det med
PplelkesMedlem sedan mars 2002823 inlägg Nu har jag gjort lite modifieringar
function GeAllhelgon(dteDate)
'//alla helgons dag den lördag som infaller under tiden den 31 oktober--den 6 november
'//först skall vi ta reda på vilken veckodag som 31 okt är, för att
'//sedan skall vi ta reda på hur många dagar vi behöver lägga till för att få en lördag.
'//Med den "inbyggda" funktion Weekday() tar vi reda på vilken veckodag som 20:e är
dteDate = #1999-10-31#
intWeekday = Weekday(dteDate, vbMonday)
'//NU skall vi räkna ut hur många dagar vi behöver lägga till för att få en lördag. Detta gör vi med den
'//inbyggda funktionen "DateAdd(interval, number, date)"
'//Det går 7 dagar på en vecka. Alltså är det 7 - intWeekDay dagar kvar till sista dagen denna vecka.
'//Vi söker ju en lördag, därför får vår vecka sluta med en lördag, dvs börja med en söndag:
dteDate = #1999-10-31#
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function
Response.Write GeAllhelgon(dteDate)
Har provat för flera olika datum, och verkar fungera. Hoppas det inte bara är tur - för nu fattar jag iaf hur jag gjort och varför
PplelkesMedlem sedan mars 2002823 inlägg Som sagt så fungerar ovanstående kod..
Men jag skulle villja ha det lite mera dynamiskt, så att man får välja årtalet med följande kod
Session.LCID = 1053
function GeAllhelgon(dteDate)
dteDate = year & -10 & -31
year = Request.Form("year")
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function
Response.Write GeAllhelgon(dteDate)
får jag följande felutskrifter
Microsoft VBScript runtime error '800a01c2'
Wrong number of arguments or invalid property assignment: 'year'
Har provat "alla möjliga och omöjliga sätt" men går bet på+t
@ndersMedlem sedan juni 200032 967 inläggDet finns en funktion som heter year, så kalla din variabel för något annat.
Mvh
PplelkesMedlem sedan mars 2002823 inlägg när jag ändrar till
Session.LCID = 1053
function GeAllhelgon(dteDate)
dteDate = ar & -10 & -31
ar = Request.Form("year")
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function
Response.Write GeAllhelgon(dteDate)
¨får jag fel:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'dteDate'
@ndersMedlem sedan juni 200032 967 inläggIn med lite citationstecken:
dteDate = ar & "-10" & "-31"
Kanske måste du använda CDate() på uttrycket också.
Mvh
PplelkesMedlem sedan mars 2002823 inlägg den gamla CDate()löste det hela :birp
PplelkesMedlem sedan mars 2002823 inlägg Nu har jag följande kod
Session.LCID = 1053
function GeAllhelgon(dteDate)
ar = 2003
dteDate = ar & "-10" & "-31"
dteDate = CDate(dteDate)
intWeekday = WeekDay(dteDate, vbSunday)
newdate = dateAdd("d", 7-intWeekDay, dteDate)
GeAllhelgon = newdate
end function
Response.Write GeAllhelgon(dteDate) & "<BR>"
iWeekDay = DatePart("w",GeAllhelgon(dteDate))
Response.Write iWeekDay & "<BR>"
Response.Write WeekDayName(iWeekDay)
Har testat för ca 10 år, och får rätt datum och dagnam M E N Response.Write i WeekDay returnerar en 7 i stället för en 6:a
Vad att göra? - skall jag bara strunta i detta, då det iaf blir rätt namn?
PplelkesMedlem sedan mars 2002823 inlägg Eller det kanske kommer av att jag tidigare på raderna har angivit att veckan börjar med söndag och då blir ju lördag dag 7
@ndersMedlem sedan juni 200032 967 inlägg
plelkes skrev:
Eller det kanske kommer av att jag tidigare på raderna har angivit att veckan börjar med söndag och då blir ju lördag dag 7
Det stämmer. Det står ett par rader om det hos DevGuru, i botten vid FirstDayOfWeek.
Mvh
PplelkesMedlem sedan mars 2002823 inlägg Jag känner att snart blir jag galen!!! När jag väl TROR att jag förtår ngt - så hamnar jag tillbaka på 0 igen*grrrr'snyft*
Vad är skillnaden - (för jag ser det inte själv) mellan fungerande:
Session.LCID = 1053
ar = 1975
nyard = ar & "-01" & "-01"
nyard = CDate(nyard)
iWeekDay = DatePart("w", nyard, 2)
Response.Write "Nyårsdagen = "
Response.Write WeekDayName(iWeekDay, ,2) & "en den "
Response.Write nyard
och icke fungerande
Session.LCID = 1053
function NewYearday(dteDate)
ar = 1999
dteDate = ar & "-01" & "-01"
dteDate = CDate(dteDate)
End function
Response.Write NewYearday(dteDate)
iWeekDay = DatePart("w", NewYearday(dteDate), 2)
Response.Write "Nyårsdagen = "
Response.Write WeekDayName(iWeekDay, ,vbMonday) & ":en "
Den senaste ger fel dag och skriver inte ut datumet
@ndersMedlem sedan juni 200032 967 inläggTill att börja med; du måste returnera datumet från funktionen också.
NewYearday = CDate(dteDate)
Jag hade också sett till att funktionen tog året som parameter, och använde det. Så här borde hela klabbet se ut:
Session.LCID = 1053
function NewYearday(intYear)
dteDate = intYear & "-01" & "-01"
NewYearday = CDate(dteDate)
End function
dteNewYearDay = NewYearday(1999)
Response.Write dteNewYearDay
iWeekDay = DatePart("w", dteNewYearDay, 2)
Response.Write "Nyårsdagen = "
Response.Write WeekDayName(iWeekDay, ,vbMonday) & ":en "
Fungerar det bättre då?
Mvh