Avatar billede boenne Nybegynder
02. maj 2003 - 02:36 Der er 8 kommentarer og
2 løsninger

"Kodeknækkere søges" - Kalenderproblem

Hjææælp..

Jeg er gået i selvsving med nedenstående kode..

Jeg har modificeret kalenderen så jeg ved et klik på selve datoen kan gå til en anden side der modtager Request.QueryString(og aktuel dato)Det virker fint EFTER jeg har brugt linkene (frem eller tilbage) - MEN..

Mit problem er at når jeg starter siden op, så bliver den indeværende måneds link angivet med en værdi der ligger 2 datoer over..

Har for at løse problemet lavet en værdi på HREF'en (frem og tilbage) der skulle bruges til at sige: Hvis den er tom så gør.. osv..
Nu er der efterhånden gået koldbrand i min hjerne så hvis nogen kan hjælpe med at få styr på koden så det virker både ved start, og brug af frem og tilbage linkene - ville jeg og min hjerne blive utroligt glade.. Koden kommer her:



<%
dtmDate = Request.QueryString("date")
Linkset = Request.QueryString("Linkok")
Response.Write Linkset
dtmToday = Date
'vdato = Date - 1


If dtmDate = "" Then
    dtmDate = Date
    'vdato = Date - 1
   
Else
    dtmDate = CDate(dtmDate)
    'vdato = dtmDate - 1   

           
End if
'--------------hvis linkset er tom så træk en fra i datoen....
if Linkset = "" Then
vdato = CDate(dtmDate)
Else
vdato = CDate(dtmDate)-1
End If
'------------------------------------



Response.Write vdato
intYear = Year(dtmDate)
strMonth = MonthName(Month(dtmDate))
intDayOfMonth = Day(dtmDate)
dtmFirstDate = DateAdd("d", (-intDayOfMonth)+1, dtmDate)
intFirstDay = Weekday(dtmFirstDate, vbMonday)
%>
      <table cellspacing="0" cellpadding="2" border="0" valign="top"
style="border: 1px solid rgb(0,0,0)" align="left">
        <tr bgcolor="#006699">
          <td colspan="7" align="center" valign="middle"><font face="Verdana"
size="2" color="#ffffff"><strong><font size="1"><%=strMonth%>&nbsp;<%=intYear%></font></strong></font></td>
        </tr>
        <tr>
          <td align="center"><b><font face="verdana" size="1">Man</font></b></td>
          <td align="center"><b><font face="verdana" size="1">Tir</font></b></td>
          <td align="center"><b><font face="verdana" size="1">Ons</font></b></td>
          <td align="center"><b><font face="verdana" size="1">Tor</font></b></td>
          <td align="center"><b><font face="verdana" size="1">Fre</font></b></td>
          <td align="center"><b><font face="verdana" size="1">Lør</font></b></td>
          <td align="center"><b><font face="verdana" size="1">Søn</font></b></td>
        </tr>
        <%
For y = 1 to 6
    If blnLast <> True Then
        Response.Write "<tr>"
        For x = 1 to 7
            Response.Write "<td align=center><font face=verdana size=1>"
            intLoopDay = intLoopDay + 1
            If intLoopDay >= intFirstDay Then
                dtmCurDate = DateAdd("d", intLoopDay-intFirstDay, dtmFirstDate)
                If Month(dtmCurDate) = Month(dtmFirstDate) Then
                    If dtmCurDate = dtmToday Then
                        vdato = vdato + 1
                        Response.Write "<a href='addon2.asp?vaerdi="& vdato &"' style='text-decoration:none; color:red'><strong>" & Day(dtmCurDate) & "</strong></a>"
                    Else
                      vdato= vdato + 1
                    Response.Write "<a href='addon2.asp?vaerdi=" & vdato & "' style='text-decoration:none; color:black'>" & Day(dtmCurDate) & "</a>"
                    Response.Write "</td>"
                    blnLast = False
                    End If
                Else
                    Response.Write "</td>"
                    blnLast = True
                End If
            Else
                Response.Write "</td>"
                blnLast = True
            End if
        Next
    End If
Next
Response.Write "</font></td></tr>"
'----------------------------------------

%>
        <tr>
          <td bgcolor="#006699" colspan="3"><font face="verdana" size="2"><b><a
href="default.asp?date=<%=DateAdd("m",-1,dtmFirstDate)%>&Linkok=<%=vdato%>">
           
            Tilbage</a></b></font></td>
          <td bgcolor="#006699">&nbsp;</td>
          <td bgcolor="#006699" colspan="3" align="right"><font face="verdana" size="2"><b><a
href="default.asp?date=<%=DateAdd("m",1,dtmFirstDate)%>&Linkok=<%=vdato%>">
       
            Frem</a></b></font></td>
        </tr>
      </table>
      </u></font></b></td>
Avatar billede truelz Nybegynder
02. maj 2003 - 08:24 #1
Erstat dette:
'--------------hvis linkset er tom så træk en fra i datoen....
if Linkset = "" Then
vdato = CDate(dtmDate)
Else
vdato = CDate(dtmDate)-1
End If
'------------------------------------

Med følgende:
vdato = CDate(dtmDate)
vdato = CDate(Month(vdato) & "/1/" & Year(vdato))

Det var den aktuelle dato du dannede linksene ud af, og den skal starte fra den første. Det vil sige at den 30. ville der blive lagt 30 dage til.
Avatar billede truelz Nybegynder
02. maj 2003 - 08:25 #2
Forresten, du kan se den virker her:
http://mikrosites.dk/blandet/kalender.asp
Avatar billede boenne Nybegynder
02. maj 2003 - 09:56 #3
Mener du sådan her?
For så returnerer den - hos mig datoen "03-05-2003" ved linket på d. 1. maj - klikker jeg på frem eller tilbage får jeg link til år 1899..


if Linkset = "" Then
vdato = CDate(dtmDate)
Else
vdato = CDate(Month(vdato) & "/1/" & Year(vdato))
End If
Avatar billede truelz Nybegynder
02. maj 2003 - 10:14 #4
Du skal fjerne if-sætningen, linkok feltet skal du slet ikke bruge...
Her er noget af den kode du alerede har brugt, så kan du se hvordan du skal sætte de to linier ind.

If dtmDate = "" Then
    dtmDate = Date
    'vdato = Date - 1
   
Else
    dtmDate = CDate(dtmDate)
    'vdato = dtmDate - 1   
End if

vdato = CDate(dtmDate)
vdato = CDate(Month(vdato) & "/1/" & Year(vdato))

Response.Write vdato
intYear = Year(dtmDate)
strMonth = MonthName(Month(dtmDate))
intDayOfMonth = Day(dtmDate)
Avatar billede truelz Nybegynder
02. maj 2003 - 10:16 #5
Jeg har nu lagt hele den nye kode ind på den førnævnte adresse.
Avatar billede boenne Nybegynder
02. maj 2003 - 10:33 #6
Ok.. har sat det ind, men jeg forstår ikke hvorfor det virker på
http://mikrosites.dk/blandet/kalender.asp
og ikke hos mig..  På "min Response.Write vdato" udskriver den fint nok datoen (bare omvendt = 05-01-2003) men på linkene over datoen i kalenderen udskriver den over den første.. 06-01-2003 osv.. 07-01-2003
Avatar billede truelz Nybegynder
02. maj 2003 - 10:48 #7
Har du prøvet at tage hele koden, og sætte den ind, præcis som den står på siden?
Jeg ved ikke hvad du mener, det kan være mange steder det går galt.
Den vil altid udskrive datoen omvendt, med mindre du går ind og laver noget med LCID-værdier osv. men det gider jeg ikke komme nærmere ind på nu :)
Avatar billede boenne Nybegynder
02. maj 2003 - 10:58 #8
Ja - jeg har overført hele koden men problemet er at den tæller måneden op og ikke datoen..
Så over linket f.eks. 2. maj står der 06-01-2003
Her skulle der så have stået 05-02-2003
Avatar billede boenne Nybegynder
02. maj 2003 - 11:49 #9
Jeg har sat følgende ind:

'--------------hvis linkset er tom så træk aktuel månedsdag fra Cdate ....
if Linkset = "" Then
vdato = CDate(dtmDate)- Day(dtmDate)
Else
vdato = CDate(dtmDate)-1
End If
'------------------------------------

Hvilket virker helt som det skal datoerne skriver nu 01-05-2003,02-05-2003 osv. Du får lidt ud af det aligevel..
Avatar billede boenne Nybegynder
02. maj 2003 - 11:50 #10
50 point til dig fordi du trods alt ledte mig på sporet igen..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester