08. marts 2007 - 18:12Der 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 %>
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"....
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
DayAndMonths = "Personen er i dag " & GetAge(Dateofbirth) & " år og der er " & DateDiff("m",Date,strFullDate) & " måneder og " & strDays & " dage til d. " & Dateofbirth
DayAndMonths = "Personen er i dag " & GetAge(Dateofbirth) & " år og der er " & DateDiff("m",Date,strFullDate) & " måneder og " & strDays & " dage til d. " & Dateofbirth
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..?
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)
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!"
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... ;-)
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
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!"
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*
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.