Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

En enkel kalender till din hemsida

Postad 2003-01-19 av Christoffer Persson i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 10950, Betyg: 69%

Förord

En kalender på sin hemsida kan vara trevligt i många sammanhang, kanske har du ett band med spelningar? Kanske en dagbok? Det finns många användningsområden. I denna artikel kommer jag visa hur man enkelt kan göra för att generera en kalender. Håll till godo!
Innehåll
  » Inledning
  » Utökning
  » Demo
Relaterade artiklar
  » Rätt tid på ASP-sidor

En enkel kalender till din hemsida




Inledning

För att skapa en kalender finns i stort sätt allt man behöver redan inbyggt i VBScript. Nyckelfunktionerna som vi kommer använda oss av är följande:


  • DateAdd(typ, antal, datum)
    typ - Vilken typ av "enhet" du vill ändra.


    yyyy=år; q=kvartal; m=månad; y=dag på året; d=dag; w=veckodag; ww=vecka på året; h=timme; n=minut; s=sekund

    antal - Hur mycket du vill ändra datumet med den valda enheten.
    datum - Det datum du vill utgå från.

    Denna funktion använder vi för att t.ex. gå en månad tillbaka på ett aktuellt datum.


    'Returnerar datumet 2003-01-01
    strDate = DateAdd("m", -1, #2003-02-01#)


  • DateSerial(år, månad, dag)
    år - Det år du vill använda.
    månad - Den månad du vill använda.
    dag - Den dag du vill använda.

    Denna funktion returnerar att giltigt datum som vi sen kan använda i de andra funktionerna.


    'Returnerar ett giltigt datum för 2003-02-01
    strDate = DateSerial(2003, 02, 01)


  • Weekday(datum, [veckans första dag])
    datum - Det datum du vill kolla vilken veckodag det är.
    veckans första dag - Valfritt, vilken veckodag veckan ska börja på. Söndag (1) är standard.


    0=använd systeminställningarna; 1=söndag; 2=måndag; 3=tisdag; 4=onsdag; 5=torsdag; 6=fredag; 7=lördag

    Denna funktion används för att ta reda på vilken veckodag ett visst datum är.


    'Returnerar 7 (lördag)
    lngDay = Weekday(#2003-02-01#)


  • Year(datum)
    datum - Det datum du vill veta vilket år det är.

    Denna funktion returnerar vilket år datumet är.


    'Returnerar 2003
    lngYear = Year(#2003-02-01#)


  • Month(datum)
    datum - Det datum du vill veta vilken månad det är.

    Denna funktion returnerar vilken månad datumet är.


    'Returnerar 2
    lngMonth = Month(#2003-02-01#)


  • Day(datum)
    datum - Det datum du vill veta vilken dag det är.

    Denna funktion returnerar vilken dag i månaden datumet är.


    'Returnerar 1
    lngDay = Day(#2003-02-01#)




Utökning

Förutom dessa inbyggda funktioner så behöver vi ännu en, eftersom det inte finns något bra inbyggt sätt att få ut hur många dagar en månad består av har jag skapat GetDaysInMonth(), den fungerar som så att den tar in ett år och en månad som parametrar, skapar ett datum av dessa, lägger till en månad och drar bort en dag på datumet. På så sätt hamnar vi på den sista dagen på den valda månaden, sen är det bara att se vilket nummer den dagen har, som är samma som antalet dagar i månaden.


<%

'GetDaysInMonth()
Public Function GetDaysInMonth(ByVal vlngYear, ByVal vlngMonth) 'As Long

'Declarations
Dim lngResult 'As Long
Dim strDate 'As String

'Get date, add one month, reduce one day
strDate = DateSerial(vlngYear, vlngMonth, 1)
strDate = DateAdd("m", 1, strDate)
strDate = DateAdd("d", -1, strDate)

'Set result
lngResult = Day(strDate)

'Return result
GetDaysInMonth = lngResult

End Function

%>




Förutom denna funktion har jag skapat en som renderar själva kalendern, RenderCalendar(). Samma sak gäller här, man skickar in ett år och en månad som man vill skapa en kalender för. Funktionen fungerar så att först kollar den vilken veckodag månaden börjar på och loopar ut så många tomma celler som behövs framför den 1:a i månaden. Sen loopar den igenom dagarna i månaden och kontrollerar hela tiden veckodagen och lägger till en ny rad varje gång vi gått förbi söndag. Sist men inte minst loopar den ut tomma celler för resterande veckodagar om den sista veckodagen i månaden inte är en söndag.


<%

'RenderCalendar()
Public Function RenderCalendar(ByVal vlngYear, ByVal vlngMonth) 'As String

'Declarations
Dim strResult 'As String
Dim lngDaysInMonth 'As Long
Dim lngDay 'As Long
Dim lngWeekday 'As Long

'Init variables
lngDaysInMonth = GetDaysInMonth(vlngYear, vlngMonth)

'Render
strResult = strResult & ""
strResult = strResult & ""

'Loop, render empty
For lngWeekday = 1 To Weekday(DateSerial(vlngYear, vlngMonth, 1), 2) - 1
strResult = strResult & ""
Next

'Loop
For lngDay = 1 To lngDaysInMonth

'Render
strResult = strResult & ""

'Set weekday
lngWeekday = lngWeekday + 1

'Check weekday
If lngWeekday > 7 And lngDay < lngDaysInMonth Then

'Render
strResult = strResult & ""

'Set weekday
lngWeekday = 1

End If

Next

'Check weekday
If lngWeekday > 7 Then

'Loop, render empty
For lngWeekday = Weekday(DateSerial(vlngYear, vlngMonth, lngDay), 2) To 7
strResult = strResult & ""
Next

End If

'Render
strResult = strResult & ""
strResult = strResult & "
" & lngDay & "
"

'Return result
RenderCalendar = strResult

End Function

%>



Demo

För att testa kalendern skapar du en fil, exempelvis "calendar.asp", och lägger in de två ovanstående funktionerna samt följande kod:


<%

'Declarations
Dim strDate 'As String

'Get request-parameters
strDate = Request("date")

'Verify parameters
If Not IsDate(strDate) Then strDate = Date

%>






">prev<%= MonthName(Month(strDate)) & " " & Year(strDate)%>">next

<%= RenderCalendar(Year(strDate), Month(strDate)) %>
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
1 824
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies