tänkte bara dela med mig två enkla datum funktioner =) .....
Denna visar detta:
Vecka 20
[8/5 - 14/5]
Koden för ovanstående:
' Fixar Vecko nummer, startdag och slutdag för aktuell vecka.
'---------------------------------------------
Function WeekStartEndDate(myDate)
' Fixar vilken vecka
'---------------------------------------------
MyDate = Year(Now) & "-01-01"
EndDate = Now
StartNo = WeekDay(MyDate,2)
For i = DateValue(MyDate) to DateValue(EndDate)
d = d + 1
Days = d
Next
Do Until d =< 0
For n = StartNo to 7
d = d - 1
Next
StartNo = 1
w = w + 1
Loop
' start och slut dag i veckan
'-----------------------------
StartDay = Day(DateDiff("d",WeekDay(myDate,2) - 1,myDate)) & "/" & Month(DateDiff("d",7 - WeekDay(myDate,2),myDate))
EndDay = Day(DateAdd("d",7 - WeekDay(myDate,2),myDate)) & "/" & Month(DateAdd("d",7 - WeekDay(myDate,2),myDate))
WeekStartEndDate = "<b>Vecka " & w & "<br>[</b>" & StartDay & " - " & EndDay & "<b>]</b>"
End Function
Den andra ändrar den första bokstaven från gemen till versal .... ni vet att när man vill ha fram tex Dagens namn ... fredag .... så får man ju liten bokstav. Ser bättre ut med stor bokstav. ..... Fredag.
' Ändrar första bokstaven från gemen till versal
'-----------------------------------------------
Function chgFirstToUCase(String)
chgString = Left(String,1)
chgString = UCase(chgString) & Right(String,Len(String) - 1)
chgFirstToUCase = chgString
End Function
Håll till godo alla intresserade.
/PatrikB
PS .... finns det fler som vill dela med sig av kod, posta ... DS
.... tackar för det .... det visste jag inte =P .... måste sätt fel i kalendern.
Den nya koden:
' Fixar Vecko nummer, startdag och slutdag för aktuell vecka.
'---------------------------------------------
Function WeekStartEndDate(myDate)
' Fixar vilken vecka
'---------------------------------------------
MyYear = Year(Now) & "-01-01"
EndDate = Now
StartNo = WeekDay(myDate,2)
For i = DateValue(MyYear) to DateValue(EndDate)
d = d + 1
Days = d
Next
Do Until d =< 0
For n = StartNo to 7
d = d - 1
Next
StartNo = 1
w = w + 1
Loop
' start och slut dag i veckan
'-----------------------------
StartDay = Day(DateDiff("d",WeekDay(myDate,2) - 1,myDate)) & "/" & Month(DateDiff("d",7 - WeekDay(myDate,2),myDate))
EndDay = Day(DateAdd("d",7 - WeekDay(myDate,2),myDate)) & "/" & Month(DateAdd("d",7 - WeekDay(myDate,2),myDate))
WeekStartEndDate = "<b>Vecka " & w & "<br>[</b>" & StartDay & " - " & EndDay & "<b>]</b>"
End Function
Där man vill att det ska visas skriver man sedan in
Att det såg fel ut från början kan bero på att vecka 1 inte startade den 1 jan. Vecka ett börjar dessutom olika. Är det inte så att v.1 alltid börjar första måndag från och med den 30 dec.?
Hello,
du har rätt i att årets första vecka alltid startar måndagen efter den 30 december.
Nu har jag uppdaterat scriptet så att det ska stämma (kolla noga .... man vet aldrig)
<%
Function WeekStartEndDate(myDate)
' Fixar vilken vecka
'---------------------------------------------
MyYear = DateDiff("y",1,Year(Now)) & "-12-30"
EndDate = Now
StartNo = WeekDay(MyYear,2)
For i = DateValue(MyYear) to DateValue(EndDate)
d = d + 1
Days = d
Next
Do Until d =< 0
For n = StartNo to 7
d = d - 1
Next
StartNo = 1
w = w + 1
Loop
' Tar bort en vecka eftersom
' räknaren börjar på föregåendes års sista vecka
w = w - 1
' start och slut dag i veckan
'-----------------------------
StartDay = Day(DateDiff("d",WeekDay(myDate,2) - 1,myDate)) & "/" & Month(DateDiff("d",7 - WeekDay(myDate,2),myDate))
EndDay = Day(DateAdd("d",7 - WeekDay(myDate,2),myDate)) & "/" & Month(DateAdd("d",7 - WeekDay(myDate,2),myDate))
WeekStartEndDate = "<b>Vecka " & w & "<br>[</b>" & StartDay & " - " & EndDay & "<b>]</b>"
End Function
%>
ändrade raden där det står:
MyYear = ....
så att vecko räkningen börjar föregående års sista vecka.
La sedan till w = w - 1 efter loopen eftersom även sista veckan förra året räknas med och således skulle det visa en vecka för mycket annars.
Blir du ledsen nu när jag skriver och klagar igen?
När jag kommer till en vecka i ett månadsskifte så visas startdatumet på veckan fel.
ex. 1/4 - 7/5
Tuff arbetsvecka. Har du någon snygg lösning på det också?
nä, inte blir jag sur inte. Meningen med att dela med sig är egentligen att det är det snabbaste sättet att få skripten "bug"-fria. titta bara på detta script.....redan mycket som har blivit tillrätta lagt ....
Någon lösning på detta har jag ej ännu .. får se vad kvällen ger ..
har löst detta med att första veckan vart liiiite lång =P ...
Function WeekStartEndDate(myDate)
' Fixar vilken vecka
'---------------------------------------------
MyYear = DateDiff("y",1,Year(Now)) & "-12-30"
EndDate = Now
StartNo = WeekDay(MyYear,2)
For i = DateValue(MyYear) to DateValue(EndDate)
d = d + 1
Days = d
Next
Do Until d =< 0
For n = StartNo to 7
d = d - 1
Next
StartNo = 1
w = w + 1
Loop
' Tar bort en vecka eftersom
' räknaren börjar på föregåendes års sista vecka
w = w - 1
' start och slut dag i veckan
'-----------------------------
' Denna rad är ändrad
'--------------------
StartDay = Day(DateDiff("d",WeekDay(myDate,2) - 1,myDate)) & "/" & Month(DateDiff("d",WeekDay(myDate,2) - 1,myDate))
EndDay = Day(DateAdd("d",7 - WeekDay(myDate,2),myDate)) & "/" & Month(DateAdd("d",7 - WeekDay(myDate,2),myDate))
WeekStartEndDate = "<b>Vecka " & w & "<br>[</b>" & StartDay & " - " & EndDay & "<b>]</b>"
End Function
Har ändrat endast en rad som jag såg att det stod fel på ... måste ha varit "finger-nisse" som varit i farten
Raden är i slutet och som ger varabeln StartDay
Några fler som hittat något annat är jag glad om ni hör av er ....
Lite till att bearbeta. 1992 hade 53 veckor. Det betyder att om det finns 4(mer än halva veckan) dagar i från föregående året i vecka 1 så kommer den veckan automatiskt att bli vecka 53.
Annerli:
En liten parantes som eg. inte har med scriptet att göra kanske....1998 hade 53 veckor irl ju....Kan det vara så 2001 - 2002 oxå då kanske ?
Hmmm, jag har nog haft fel. Det är iaf ingen v.53 2001. Har spanat lite i kalendern och sett ett samband med att om den 31dec ligger på en söndag så blir det 53v. Då borde nästa 53veckors år ligga 2009 och därefter 2015, 2020... Intervallet mellan åren är 11, 6, 5, 6 och sedan 11, 6 osv.
/daniel
497 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a