Guffa | Foto | Programmering

Slumpa dagligen

Ifall man vill att någonting ändras slumpvis varje dygn, så kan man ju lösa det genom att spara datum och slumptal någonstans, och kolla datumet varje gång slumptalet ska användas för att se ifall det är en ny dag, och ett nytt slumptal behövs.

Ett mycket enklare sätt är att få funktionen Rnd() att returnera samma slumptal hela dagen, men ett annat slumptal hela nästa dag.

Det gör man genom att anropa Rnd() med ett negativt tal som parameter. Då använder den nämligen det talet som utgångsvärde för slumptalet. Ifall vi skickar in ett värde som vi beräknar utifrån dagens datum, så får vi ett slumptal som ändras en gång per dygn.

Datum i VBScript lagras som ett flyttal, där heltalsdelen är antalet dagar sedan 1899-12-30. Vi kan alltså helt enkelt omvandla dagens datum till ett heltal, så får vi ett tal som ändras en gång per dygn.

dblRandom = Rnd(-CLng(Date()))

Ifall vi har femton bilder som vi vill slumpa mellan, som heter Bild_1.gif till Bild_15.gif, så blir det så här:

<img src="Bild_<%=Int(Rnd(-CLng(Date())) * 15) + 1%>.gif">