Avatar billede zombien Juniormester
21. august 2007 - 08:29 Der er 8 kommentarer og
1 løsning

Problemer med fødselsdags script

Hej

Allesammen, jeg sidder og har et problem med følgende script..
det registerede godt nok, den første fødselsdag da scriptet kom online, men af en eller anden sjov grund... henter den kun den dato :-S selv når vi har overskredet denne dato...

men scriptet lyder sådan
sub birthdayreminder
dim strToday, strTomorrow, strDayAfterTomorrow
if len(day(now)) < 2 then strToday = "0" &day(now)& "-" else strToday = day(now)& "-" end if
if len(month(now)) < 2 then strToday = strToday& "0" &month(now) else strToday = strToday&month(now) end if
   
if isdate((day(now) + 1)& "-" &month(now)& "-" &year(now)) then
if len(day(now) + 1) < 2 then strTomorrow = "0" &(day(now) + 1)& "-" else strTomorrow = (day(now) + 1)& "-" end if
if len(month(now)) < 2 then strTomorrow = strTomorrow& "0" &month(now) else strTomorrow = strTomorrow&month(now) end if
else
if len(month(now) + 1) < 2 then strTomorrow = "01-0" &(month(now) + 1) else strTomorrow = "01-" &(month(now) + 1) end if
end if
   
if isdate(day(now) + 2& "-" &month(now)& "-" &year(now)) then
if len(day(now) + 2) < 2 then strDayAfterTomorrow = "0" &(day(now) + 2)& "-" else strDayAfterTomorrow = (day(now) + 2)& "-" end if

if len(month(now)) < 2 then strDayAfterTomorrow = strDayAfterTomorrow& "0" &month(now) else strDayAfterTomorrow = strDayAfterTomorrow&month(now) end if
else
if len(month(now) + 2) < 2 then strDayAfterTomorrow = "01-0" &(month(now) + 1) else strDayAfterTomorrow = "01-" &(month(now) + 1) end if
end if
   
dim dbUserBDnext, dbUserBDtoday, dbUserBDtomorrow, dbUserBDdayaftertomorrow
if len(month(now)) < 2 then
set dbUserBDnext = conn.execute("select * from bruger where bday like '%-0" &month(now)& "-%' and lvl<5 order by bday")
else
set dbUserBDnext = conn.execute("select * from bruger where bday like '%-" &month(now)& "-%' and lvl<5 order by bday")
end if
set dbUserBDtoday = conn.execute("select * from bruger where bday like '" &strToday& "%' and lvl<5 order by bday limit 5")
set dbUserBDtomorrow = conn.execute("select * from bruger where bday like '" &strTomorrow& "%' and lvl<5 order by bday limit 5")
set dbUserBDdayaftertomorrow = conn.execute("select * from bruger where bday like '" &strDayAfterTomorrow& "%' and lvl<5 order by bday limit 5")
   
response.write "<strong>F&oslash;dselsdags p&aring;minder</strong>"
dim arrDateBD
   
if dbUserBDtoday.eof and dbUserBDtomorrow.eof and dbUserBDdayaftertomorrow.eof then
response.write "<br />"
response.write "Ingen f&oslash;dselsdage,<br />de n&aelig;ste 3 dage"
response.write "<br /><br />"
response.write "<strong>N&aelig;ste f&oslash;dselsdag:</strong><br />"
if dbUserBDnext.bof or dbUserBDnext.eof then
response.write "Ikke flere f&oslash;dselsdage<br />i denne m&aring;ned"
else
arrDateBD = split(dbUserBDnext("bday"), "-")
if arrDateBD(1) < month(now) then
response.write formatdatetime(arrDateBD(0)& "-" &arrDateBD(1)& "-" &year(now), vblongdate)& "<br />"
response.write dbUserBDnext("char1")
response.write " (" &((year(now) + 1) - arrDateBD(2))& ")"
else
response.write formatdatetime(arrDateBD(0)& "-" &arrDateBD(1)& "-" &year(now), vblongdate)& "<br />"
response.write dbUserBDnext("char1")
response.write " (" &(year(now) - arrDateBD(2))& ")"
end if
end if
else
response.write "<br /><br />"
response.write "<table width='100%' border='0' cellspacing='0' cellpadding='0'>"
if not dbUserBDtoday.bof and not dbUserBDtoday.eof then
response.write "<tr>"
response.write "<td width='100%'>"
response.write "<strong>" &formatdatetime(strToday, vblongdate)& "</strong><br /><small>(i dag)</small>"
do until dbUserBDtoday.eof
response.write "<br />"
response.write dbUserBDtoday("char1")
arrDateBD = split(dbUserBDtoday("bday"), "-")
response.write " (" &(year(now) - arrDateBD(2))& ")"
                   
dbUserBDtoday.movenext
loop
response.write "</td>"
response.write "</tr>"
response.write "<tr><td height='5'></td></tr>"
end if
       
if not dbUserBDtomorrow.bof and not dbUserBDtomorrow.eof then
response.write "<tr>"
response.write "<td width='100%'>"
response.write "<strong>" &formatdatetime(strTomorrow, vblongdate)& "</strong><br /><small>(i morgen)</small>"
do until dbUserBDtomorrow.eof
response.write "<br />"
response.write dbUserBDtomorrow("char1")
arrDateBD = split(dbUserBDtomorrow("bday"), "-")
response.write " (" &(year(now) - arrDateBD(2))& ")"
                   
dbUserBDtomorrow.movenext
loop
response.write "</td>"
response.write "</tr>"
response.write "<tr><td height='5'></td></tr>"
end if
       
if not dbUserBDdayaftertomorrow.bof and not dbUserBDdayaftertomorrow.eof then
response.write "<tr>"
response.write "<td width='100%'>"
response.write "<strong>" &formatdatetime(strDayAfterTomorrow, vblongdate)& "</strong><br /><small>(i overmorgen)</small>"
do until dbUserBDdayaftertomorrow.eof
response.write "<br />"
response.write dbUserBDdayaftertomorrow("char1")
arrDateBD = split(dbUserBDdayaftertomorrow("bday"), "-")
response.write " (" &(year(now) - arrDateBD(2))& ")"
                   
                    dbUserBDdayaftertomorrow.movenext
loop
response.write "</td>"
response.write "</tr>"
end if
response.write "</table>"
end if
end sub

håber der er nogen herinde, som kan finde fejl'en for jeg er igang med at opgive :-S
Avatar billede fennec Nybegynder
21. august 2007 - 09:12 #1
Virker som en frygtelig masse kode, bare for en fødselsdags husker.

Hvad er det helt specifik scriptet skal gøre?? Kan se et eller andet med fødselsdage de næste 3 dag og næste måned...
Avatar billede montago Praktikant
21. august 2007 - 09:38 #2
´´´´´´´´´´´´´´´´´´´´´´´´
----> DateDiff !! <-----
________________________

HALLELUJA !!!!

AMEN
Avatar billede zombien Juniormester
21. august 2007 - 10:03 #3
fennec < Jamen den netop som du siger, kunne se om der er nogen der har fødselsdag idag, samt inden for de næste 3 dage, i tilfældet af der ikke er nogen som har fødselsdag de næste 3 dage, skal den finde frem til dem som har det i måneden...

Montago < hvordan skal jeg forstå den kommentar???
Avatar billede fennec Nybegynder
21. august 2007 - 10:06 #4
Hvilken database bruger du?? Access??
Avatar billede montago Praktikant
21. august 2007 - 10:08 #5
at DateDiff kan servere alt hvad du skal bruge på et sølvfad...

http://www.w3schools.com/vbscript/func_datediff.asp
og
http://www.w3schools.com/sql/sql_functions.asp

man indsætter NOW og den dato man vil have - dvs. fødselsdag + måned + dette år... så har man antallet af dage :)
Avatar billede fennec Nybegynder
21. august 2007 - 10:41 #6
montago >>
Det er bare ikke nok, da datoen i databasen højest sandsynliger er fødselsdatoen. F.eks 23-08-1977. Hvilket det også skal være, da man på den måde kan se om personen fylder rundt.

Hvis der skal laves et script til at tjekke kommende fødselsdage, skal der datediff dateadd ind over. Også skal det ind i database selecten...

Ikke så simpelt som du får det til at lyde :o)
Avatar billede fennec Nybegynder
21. august 2007 - 10:44 #7
Manglede lige datepart også... Der skal bruges datediff, dateadd og datepart.
Avatar billede fennec Nybegynder
21. august 2007 - 10:45 #8
Det er ihvertfald mit gæt...
Avatar billede zombien Juniormester
21. august 2007 - 12:02 #9
jeg vil gerne sige tak, til jeres vejledning...
men i mellemtiden, har jeg programmeret mig ud af problemet, ved at ændre lidt opsætning omkring fødselsdagen i min database og derefter brugt det script man finder her

http://www.eksperten.dk/spm/385963

som bare skulle have lavet lidt justeringer for at kunne det, som jeg skulle bruge det til...
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