webForumDet fria alternativet

Problem med datum, veckor och månader

ASP

5 svar · 305 visningar · startad av klementin

Medlem sedan aug. 2001117 inlägg
Frågan#1

Hej!
Har sökt här på forumet och hittat massor som handlar om datum men jag lyckas ändå inte få till det. det jag är ute efter är att efter att man har valt år och månad i en SELECT-box så får man fram alla dom dagarna som finns i den månaden, indelade i veckor (se den bifgoade bilden).
Tack på förhand!
/K

date_example.gif
Medlem sedan jan. 20032 285 inlägg
#2

Du får lägga in designen själv. ;)

<%
Session.LCID = 1053

Dim intYear, strMonth, intMonth, intDays, blnSkottar, intWeekday, intCount, arrMonths()

intYear = CInt(Request.Form("year"))
strMonth = Request.Form("month")

If intYear Mod 4 = 0 Then blnSkottar = True

Select Case strMonth
  Case "Januari"
    intDays = 31
    intMonth = 1
  Case "Februari"
    If blnSkottar Then
      intDays = 29
    Else
      intDays = 28
    End If
    intMonth = 2
  Case "Mars"
    intDays = 31
    intMonth = 3
  Case "April"
    intDays = 30
    intMonth = 4
  Case "Maj"
    intDays = 31
    intMonth = 5
  Case "Juni"
    intDays = 30
    intMonth = 6
  Case "Juli"
    intDays = 31
    intMonth = 7
  Case "Augusti"
    intDays = 31
    intMonth = 8
  Case "September"
    intDays = 30
    intMonth = 9
  Case "Oktober"
    intDays = 31
    intMonth = 10
  Case "November"
    intDays = 30
    intMonth = 11
  Case "December"
    intDays = 31
    intMonth = 12
  Case Else
    intDays = 30
    intMonth = 0
End Select

If Len(CStr(intMonth)) = 1 Then intMonth = "0" & intMonth
intWeekday = Weekday(intYear & "-" & intMonth & "-01", vbMonday)

Response.Write("Vecka " & DatePart("ww", intYear & "-" & intMonth & "-01", vbMonday) & "<br>" & vbCrLf)
For i = intWeekday To 7
  intCount = intCount + 1
  Response.Write(UCase(Left(WeekdayName(i, False, vbMonday), 1)) & " " & intCount & "/" & intMonth & "<br>" & vbCrLf)
Next
Response.Write("<br>" & vbCrLf)

intCounter = 0

Response.Write("Vecka " & DatePart("ww", intYear & "-" & intMonth & "-" & intCount + 1, vbMonday) & "<br>" & vbCrLf)
For j = intCount + 1 To intDays
  intCounter = intCounter + 1
  intCount = intCount + 1
  Response.Write(UCase(Left(WeekdayName(intCounter, False, vbMonday), 1)) & " " & intCount & "/" & intMonth & "<br>" & vbCrLf)

  If intCounter = 7 Then
    If NOT intCount = intDays Then
      intCounter = 0
      Response.Write("<br>" & vbCrLf & "Vecka " & DatePart("ww", intYear & "-" & intMonth & "-" & intCount + 1, vbMonday) & "<br>" & vbCrLf)
    End If
  End If
Next
%>
Medlem sedan aug. 2001117 inlägg
#3

TACK!

Taskig du är som inte fixar designen oxå ;)

Verkligen jättebra! Funkar ju hur bra som helst. Ett stort TACK till dig!

/K

Medlem sedan jan. 20032 285 inlägg
#4

Jag har gjort en version med lite mer design åt mig själv också. Det går att hittas på http://www11.brinkster.com/creepyone/nytta/almanacka.asp (själva scriptet)
http://www11.brinkster.com/creepyone/nytta/almanackskod.asp (koden). :)

Medlem sedan mars 2002823 inlägg
#5

Som ni säkert vet, så håller jag oxå på att pula med en kalender..
Så jag har ngr följdfrågor:

If intYear Mod 4 = 0 Then blnSkottar = True

Betyder väl att om intYear är jämt delbart med 4 så är det skottår?

Nästa fråga är :
Finns det ngt sätt att undvika att använda "case"?

Sista frågan (för iaf nu :h ):

arrMonths = Array("Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December")

Varför skapa en array med månadernas namn, om man har en "formulär" där man kan välja månad?

Medlem sedan mars 20015 287 inlägg
#6

Formuläret byggs ju i detta fallet upp av arrayens innehåll.
Sen kan man väl iofs skippa slussa igenom namnet o i stället använda sig av månadens nummer, det ger ju lätt namnet. (Med hjälp av arrayen om inte annat. Dagantal kan du ju få med hjälp av de funktioner du använder dig av i din almanacktråd.

377 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)
228 ms — ändringar (db)