TACK Ja vi borde kanske ha ett script arkiv ?? Jag har ett par som jag gärna delar med mej av :f
------------------
/Mvh Annelie( http://www.annelie.nu )
20 svar · 286 visningar · startad av PatrikB
Hello,
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
[Redigerat av PatrikB den 12 maj 2000]
[Redigerat av PatrikB den 12 maj 2000]
TACK Ja vi borde kanske ha ett script arkiv ?? Jag har ett par som jag gärna delar med mej av :f
------------------
/Mvh Annelie( http://www.annelie.nu )
Ett riktigt bra förslag det där med script arkiv iden. Eller kanske man kunde skapa ett eget forum där man kan dela med sig av det man kan.
Tyvärr kan jag kanske inte bidra så mycket men man kan ju alltid knycka andras script :e :e :e
------------------
Mvh Chavez
Var det inte nåt sånt webmaster.nu var tänkt att det skulle bli?
Väntar på den sidan men den verkar aldrig komma :)
Andreas
PatrikB>>>
Det är inte vecka 20, utan vecka 19
[8/5 - 14/5]
Men det visste du kanske redan om
Hello ASP Ny .....
.... 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
<% =WeekStartEndDate(Now)%>
Tackar för att du var så observant
//PatrikB
[Redigerat av PatrikB den 13 maj 2000]
[Redigerat av PatrikB den 17 maj 2000]
Din sista kod fungerar utan att dra ifrån 1 från "w". Om du drar bort 1 så blir det en vecka för lite.
En annan sak som jag upptäckt är att i månadsskiftet så blir det lite fel. Visar här 3v. i rad:
Vecka 22
[29/5 - 4/6]Vecka 23
[5/5 - 11/6]Vecka 24
[12/6 - 18/6]
Det blir så att säga lite fel v.23.
Någon som har löst det redan?
Mycket tacksam för exemplet och hoppas på fler sådana i framtiden.
/daniel - (väntar på ett scriptarkiv) :)
Hello,
kan ej se vad det är för fel på vecka 23....fast du hade rätt om att jag inte ska dra ifrån ... det var rätt från början ...?:)
/PatrikB
Det finns en asp-del på www.programmersheaven.com
där kan man ladda upp filer om man vill... tyvärr så har ingen gjort det ännu :(
[Redigerat av rymdknark den 18 maj 2000]
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.?
Många nya faktorer att lägga till i scriptet. :)
/daniel
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.
Hoppas att det ska stämma nu ....
/PatrikB
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å?
/daniel
Hello!! igen ....
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 ..
/PatrikB
Hello,
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 ....
/PatrikB
[Redigerat av PatrikB den 19 maj 2000]
Done it again! Hittat ett nytt fel. :)
Om du testar årsskiftet 2001-2002 så får du en extra vecka.
Vecka 53
[31/12 - 6/1]
/daniel - Mr. Bugfinder :h
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.
/daniel
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 ?
------------------
/Mvh Annelie( http://www.annelie.nu )
[Redigerat av Annelie den 19 maj 2000]
Varför inte använda detta script:
<%
startdag = Date() - Weekday(Date(), 2) + 1
slutdag = Date() - Weekday(Date(), 2) + 7
%>
Vecka <%= DatePart("ww", Date(), 2, 2)%><br>
[<%=Day(startdag)%>/<%=Month(startdag)%>
- <%=Day(slutdag)%>/<%=Month(slutdag)%>]
[Redigerat av fredrik99 den 22 maj 2000]
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