Avatar billede peterkopi Nybegynder
08. marts 2007 - 18:12 Der er 16 kommentarer og
1 løsning

Få fødselsdagsscript til at virke - og vise flere fødselsdage!

Hej eksperter

Jeg har dette script, som desværre ikke virker. Men hvis nogen ku hjælpe mig med at få det til at virke, ville jeg gerne være i stand til at vise flere (ca. 8 stk.)...

Nogen der kan hjælpe med

1) Få scriptet til at virke? (100 point)
2) Få scriptet til at vise flere fødselsdage? (+ 100 point)

SCRIPT:

<% @ Language=VBScript %>
<%
sBirthdate = "04-01-1985"
dato = sBirthdate
years = Datediff ("yyyy",dato,date)
dato = dateAdd("yyyy",years,dato)
mounths = Datediff ("m",dato,date)
if mounths < 0 then
  dato = dateAdd("yyyy",-1,dato)
  mounths = Datediff ("m",dato,date)
  years = years - 1
end if
dato = dateAdd("m",months,dato)
days = Datediff ("d",dato,date)
if days < 0 then
  if months > 0 then
    months = months - 1
  else
    years = years - 1
    months = 11
  end if
  dato = dateAdd("m",-1,dato)
  days = Datediff ("d",dato,date)
end if
dinStr = years & " år " & months & " måneder " & days & " dage"
Response.Write dinStr
%>
Avatar billede peterkopi Nybegynder
08. marts 2007 - 18:22 #1
PS! Ved godt, at der står "mounths" i stedet for "month" 3 steder. Er rettet ;-)
Avatar billede madeindk Nybegynder
08. marts 2007 - 19:00 #2
1) Skal det regne ud hvor gammmel en person er?
Avatar billede peterkopi Nybegynder
08. marts 2007 - 19:12 #3
Ja, ligesom scriptet herover skulle gøre. Alder skal bare vises som (YY).
Der behøver ikke være et output som fx 27 år, 3 måneder, 4 dage - Alder: 27 år er nok.

Men kan man samtidig lave en funktion, der viser hvor lang tid der er til personens NÆSTE fødselsdag, ville det osse være fedt.
Dvs. i stil med

"Alder: 27 år
I dag er der XX måneder og XX dage til XXXXX's næste fødselsdag"....
Avatar billede madeindk Nybegynder
08. marts 2007 - 21:24 #4
Det tog sin tid, men her er den:

<%
Session.LCID = 1030

Function GetAge(Dateofbirth)
  GetAge = Year(Date) - Year(Dateofbirth)
  If DateDiff("s", Now, Replace(Dateofbirth, Year(Dateofbirth), Year(Date))) > 0 Then
      GetAge = GetAge - 1
  End If
End Function

Function DayAndMonths(Dateofbirth)
     
    if Month(DateofBirth) < month(date) then
        strT = 12 - month(date)   
        strM = strT + Month(Dateofbirth)
        strY = Year(Date) + 1
    end if
   
    if Month(DateofBirth) > month(date) then
        strM = Month(DateofBirth) - month(date)
        strY = Year(Date)
    end if

    Dato = "01-" & Month(Dateofbirth) & "-" & strY
    AntalDage = DateDiff("d", Dato, DateAdd("m", 1, Dato))
       
    if Day(Dateofbirth) < day(date) then
       
        If Month(Dateofbirth) = 1 Then
          strM2 = 12
        Else
          strM2 = Month(DateofBirth) - 1
        End If
               
        strDays = DateDiff("d", "01-" & Month(Dateofmonth) & "-" & strY, DateAdd("m", 1, "01-" & Month(Dateofmonth) & "-" & strY)) - day(date) + Day(Dateofbirth)
   
    End If
   
    if Day(Dateofbirth) > Day(date) then
        strDays = Day(Dateofbirth) - day(date)
    end if
   
    If Day(Dateofbirth) = day(date) Then
        strDays = "0"
    End If
       
    strDay = Day(Dateofbirth)
    strMonth = strM
    strYear = strY
    strFullDate = strDay & "-" & Month(Dateofbirth) & "-" & strYear
   
    DayAndMonths = "Personen er i dag " & GetAge(Dateofbirth) & " år og der er " & DateDiff("m",Date,strFullDate) & " måneder og " & strDays & " dage til d. " & Dateofbirth
     
End Function

Response.Write DayAndMonths("29-11-1988") & "<br /><br />"
%>
Avatar billede madeindk Nybegynder
08. marts 2007 - 21:29 #5
En lille rettelse :-)

<%
Session.LCID = 1030

Function GetAge(Dateofbirth)
 
  GetAge = Year(Date) - Year(Dateofbirth)
 
  If DateDiff("s", Now, Replace(Dateofbirth, Year(Dateofbirth), Year(Date))) > 0 Then
      GetAge = GetAge - 1
  End If
 
End Function

Function DayAndMonths(Dateofbirth)
     
    If Month(DateofBirth) < month(date) then
        strT = 12 - month(date)   
        strM = strT + Month(Dateofbirth)
        strY = Year(Date) + 1
    ElseIf Month(DateofBirth) > month(date) then
        strM = Month(DateofBirth) - month(date)
        strY = Year(Date)
    Else
        strM = Month(DateofBirth)
        strY = Year(Date)
    End If

    Dato = "01-" & Month(Dateofbirth) & "-" & strY
    AntalDage = DateDiff("d", Dato, DateAdd("m", 1, Dato))
       
    If Day(Dateofbirth) < day(date) Then
       
        If Month(Dateofbirth) = 1 Then
          strM2 = 12
        Else
          strM2 = Month(DateofBirth) - 1
        End If
               
        strDays = DateDiff("d", "01-" & Month(Dateofmonth) & "-" & strY, DateAdd("m", 1, "01-" & Month(Dateofmonth) & "-" & strY)) - day(date) + Day(Dateofbirth)
   
    ElseIf Day(Dateofbirth) > Day(date) Then
        strDays = Day(Dateofbirth) - day(date)
    Else
        strDays = "0"
    End If
       
    strDay = Day(Dateofbirth)
    strMonth = strM
    strYear = strY
    strFullDate = strDay & "-" & Month(Dateofbirth) & "-" & strYear
   
    DayAndMonths = "Personen er i dag " & GetAge(Dateofbirth) & " år og der er " & DateDiff("m",Date,strFullDate) & " måneder og " & strDays & " dage til d. " & Dateofbirth
     
End Function

Response.Write DayAndMonths("29-06-1988")
%>
Avatar billede peterkopi Nybegynder
09. marts 2007 - 03:45 #6
Tak for svaret, men hvis jeg indsætter min fødselsdato 31-07-1966, så skriver siden:
Personen er i dag 40 år og der er 4 måneder og 22 dage til d. 31-07-1966 ???

Hvor der skulle stå:
Personen er i dag 40 år og der er 4 måneder og 22 dage til hans næste fødselsdag d. 31. juli 2007(eller i år i stedet for 2007).

Hvordan kan jeg lægge 7 andres fødselsdage i scriptet..?
Avatar billede madeindk Nybegynder
09. marts 2007 - 11:18 #7
Ok - det har jeg nu lavet!

Men jeg har lavet et lille eksempel på hvordan du kan regne flere ud:

<%
Session.LCID = 1030

Function GetAge(Dateofbirth)
 
  GetAge = Year(Date) - Year(Dateofbirth)
 
  If DateDiff("s", Now, Replace(Dateofbirth, Year(Dateofbirth), Year(Date))) > 0 Then
      GetAge = GetAge - 1
  End If
 
End Function

Function DayAndMonths(Dateofbirth)
     
    If Month(DateofBirth) < month(date) then
        strT = 12 - month(date)   
        strM = strT + Month(Dateofbirth)
        strY = Year(Date) + 1
    ElseIf Month(DateofBirth) > month(date) then
        strM = Month(DateofBirth) - month(date)
        strY = Year(Date)
    Else
        strM = Month(DateofBirth)
        strY = Year(Date)
    End If

    Dato = "01-" & Month(Dateofbirth) & "-" & strY
    AntalDage = DateDiff("d", Dato, DateAdd("m", 1, Dato))
       
    If Day(Dateofbirth) < day(date) Then
       
        If Month(Dateofbirth) = 1 Then
          strM2 = 12
        Else
          strM2 = Month(DateofBirth) - 1
        End If
               
        strDays = DateDiff("d", "01-" & strM2 & "-" & strY, DateAdd("m", 1, "01-" & Month(Dateofmonth) & "-" & strY)) - day(date) + Day(Dateofbirth)
   
    ElseIf Day(Dateofbirth) > Day(date) Then
        strDays = Day(Dateofbirth) - day(date)
    Else
        strDays = "0"
    End If
       
    strDay = Day(Dateofbirth)
    strMonth = strM
    strYear = strY
    strFullDate = strDay & "-" & Month(Dateofbirth) & "-" & strYear
    strNextBirth = strDay & "-" & Month(Dateofbirth) & "-" & strYear
   
    DayAndMonths = "Personen er i dag " & GetAge(Dateofbirth) & " år og der er " & DateDiff("m",Date,strFullDate) & " måneder og " & strDays & " dage til d. " & FormatDateTime(strNextBirth, vbLongDate)
     
End Function
%>

Peters fødselsdag: <%= DayAndMonths("21-11-1989") %> <br />
Louises fødselsdag: <%= DayAndMonths("07-08-1989") %> <br />
Egons fødselsdag: <%= DayAndMonths("07-01-1966") %> <br />
Kirstens fødselsdag: <%= DayAndMonths("06-04-1966") %>
Avatar billede madeindk Nybegynder
09. marts 2007 - 11:44 #8
Man kunne naturligvis også gøre sådan her :-)

<%
Session.LCID = 1030

Function GetAge(Dateofbirth)
 
  GetAge = Year(Date) - Year(Dateofbirth)
 
  If DateDiff("s", Now, Replace(Dateofbirth, Year(Dateofbirth), Year(Date))) > 0 Then
      GetAge = GetAge - 1
  End If
 
End Function

Function DayAndMonths(Dateofbirth, username, sex)
     
    If Month(DateofBirth) < month(date) then
        strT = 12 - month(date)   
        strM = strT + Month(Dateofbirth)
        strY = Year(Date) + 1
    ElseIf Month(DateofBirth) > month(date) then
        strM = Month(DateofBirth) - month(date)
        strY = Year(Date)
    Else
        strM = Month(DateofBirth)
        strY = Year(Date)
    End If
       
    If Day(Dateofbirth) < day(date) Then               
      strDays = DateDiff("d", "01-" & Month(Dateofmonth) & "-" & strY, DateAdd("m", 1, "01-" & Month(Dateofmonth) & "-" & strY)) - day(date) + Day(Dateofbirth)
    ElseIf Day(Dateofbirth) > Day(date) Then
      strDays = Day(Dateofbirth) - day(date)
    Else
      strDays = 0
    End If
       
    strDay = Day(Dateofbirth)
    strMonth = strM
    strYear = strY
    strFullDate = strDay & "-" & Month(Dateofbirth) & "-" & strYear
    strNextBirth = strDay & "-" & Month(Dateofbirth) & "-" & strYear
   
    DayAndMonths = "" & username & " er i dag " & GetAge(Dateofbirth) & " år og der er " & DateDiff("m",Date,strFullDate) & " måneder og " & strDays & " dage til d. " & FormatDateTime(strNextBirth, vbLongDate) & " til " & sex & " fødselsdag!"
     
End Function

Response.Write DayAndMonths("21-11-1989","Søren","hans") & "<br />"
Response.Write DayAndMonths("17-10-1977","Louise","hendes") & "<br />"
Response.Write DayAndMonths("17-10-1963","Morten","hans") & "<br />"
%>

Nu har jeg så angivet navn og køn i funktionen - husk at rette køn :-)
Avatar billede peterkopi Nybegynder
12. marts 2007 - 12:07 #9
Hej madeindk ;-) Jeg har set dine indlæg, men har først tid til at uploade og tjekke imorgen, tirsdag. Vender tilbage hurtigst efter det...
Avatar billede madeindk Nybegynder
17. marts 2007 - 00:51 #10
Har du fundet ud af noget?
Avatar billede peterkopi Nybegynder
29. marts 2007 - 13:01 #11
Undskyld, undskyld... Jeg  har fået kastet en stor hasteopgave i armene. Kan desværre først gøre noget ved det i næste uge. Håber ikke du har ventet dig selv ihjel... ;-)
Avatar billede peterkopi Nybegynder
10. april 2007 - 18:51 #12
Hej igen, madeindk - så har jeg lagt dit svar fra 09/03-2007 11:44:27 op på: http://www.peterogdeandrekopier.dk/birthdays.asp

Nu skal jeg bare lige have flyttet "til hans næste fødselsdag!" ind før "strNextBirth..."

- Hvordan gør jeg det uden at ødelægge noget?

- Og kan jeg lægge teksten øverst på siden (http://www.peterogdeandrekopier.dk/birthdays.asp) ind på en måde i funktionen, så jeg automatisk får skrevet...

Overskriften fra siden:
"Her får du lige, i rækkefølge, ALLE fødselsdagene i 2007:" (Årstallet automatisk?)

...og i sidste sætning:
"...er fra '72, bliver der altså kun fejret fem XX års fødselsdage i år!" (XX år fra 1966 - automatisk?

Husk at lægge et svar :-)
Avatar billede madeindk Nybegynder
10. april 2007 - 20:40 #13
Ved ikke lige hvordan man kringler det sidste. Og synes nu også jeg har gjort mit for at få det her til at virke. Brugte trods alt 2 timer med en kammerat for at få lavet det her script til dig!

<%
Session.LCID = 1030

Function GetAge(Dateofbirth)
 
  GetAge = Year(Date) - Year(Dateofbirth)
 
  If DateDiff("s", Now, Replace(Dateofbirth, Year(Dateofbirth), Year(Date))) > 0 Then
      GetAge = GetAge - 1
  End If
 
End Function

Function DayAndMonths(Dateofbirth, username, sex)
     
    If Month(DateofBirth) < month(date) then
        strT = 12 - month(date)   
        strM = strT + Month(Dateofbirth)
        strY = Year(Date) + 1
    ElseIf Month(DateofBirth) > month(date) then
        strM = Month(DateofBirth) - month(date)
        strY = Year(Date)
    Else
        strM = Month(DateofBirth)
        strY = Year(Date)
    End If
       
    If Day(Dateofbirth) < day(date) Then               
      strDays = DateDiff("d", "01-" & Month(Dateofmonth) & "-" & strY, DateAdd("m", 1, "01-" & Month(Dateofmonth) & "-" & strY)) - day(date) + Day(Dateofbirth)
    ElseIf Day(Dateofbirth) > Day(date) Then
      strDays = Day(Dateofbirth) - day(date)
    Else
      strDays = 0
    End If
       
    strDay = Day(Dateofbirth)
    strMonth = strM
    strYear = strY
    strFullDate = strDay & "-" & Month(Dateofbirth) & "-" & strYear
    strNextBirth = strDay & "-" & Month(Dateofbirth) & "-" & strYear
   
    DayAndMonths = "" & username & " er i dag " & GetAge(Dateofbirth) & " år og der er " & DateDiff("m",Date,strFullDate) & " måneder og " & strDays & " dage til & sex & " næste fødselsdag fødselsdag!"
     
End Function

Response.Write DayAndMonths("21-11-1989","Søren","hans") & "<br />"
Response.Write DayAndMonths("17-10-1977","Louise","hendes") & "<br />"
Response.Write DayAndMonths("17-10-1963","Morten","hans") & "<br />"
%>
Avatar billede peterkopi Nybegynder
11. april 2007 - 16:04 #14
Takker og bukker ;-) Men mangler der ikke noget omkring dette:

...næste fødselsdag fødselsdag!"  -sidst i funktionen? Og hvor skal " & FormatDateTime(strNextBirth, vbLongDate) & " placeres, så der står "Personen er i dag 40 år og der er 4 måneder og 22 dage til hans næste fødselsdag d. 31. juli 2007"..???

Jeg placerede denne hersens <% Response.Write Year(date) %> i stedet for det aktuelle årstal i overskriften (den fra 10/04-2007 18:51:08).
Det virker, se evt. http://www.peterogdeandrekopier.dk/birthdays.asp

Nu mangler jeg bare at få funktionen til at regne/Write YY i sidste del af sætningen. Er det Year(date) MINUS 1966 på én eller anden måde???

Jeg har iøvrigt intet imod at donere yderligere point, hvis det er det er... *S*
Avatar billede peterkopi Nybegynder
11. april 2007 - 17:02 #15
Jeg har fået styr på det. Se evt. spm. http://www.eksperten.dk/spm/772754
Avatar billede peterkopi Nybegynder
11. april 2007 - 17:05 #16
Her kan du hente de ekstra 100 P - http://www.eksperten.dk/spm/772765
Avatar billede peterkopi Nybegynder
16. april 2007 - 10:56 #17
Her kan evt. interesserede set scriptet i funktion: http://www.peterogdeandrekopier.dk/kontakt/faq.asp#2
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

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