version = "1.0" ' SaisonsAty.vbs, version 1.0 ' Calcul le prochaine changement de saison sur Ryzom ' Se base sur la date du site officiel : http://atys.ryzom.com/api/time.php?shardid=ani&format=txt ' Fait par Bastien en juin 2009 (sagaofbastien@gmail.com) mois = Array ("Winderly","Germinally","Folially","Floris","Medis","Thermis","Harvestor","Frutor","Fallenor","Pluvia","Mystia","Nivia") Set ie = CreateObject("InternetExplorer.Application") ie.Navigate ("http://atys.ryzom.com/api/time.php?shardid=ani&format=txt") ie.Visible = False Do While ie.ReadyState <> 4 loop AtysDate = ie.document.getElementsByTagName("BODY").item(0).outerhtml 'recup du contenu de la page web (exemple : 16h - Prima, Nivia 07, 2e CA 2546) AtysDate = Mid (AtysDate, 9, len(AtysDate)-16) ' Je vire la baliste et (exemple : 16h - Prima, Nivia 07, 2e CA 2546) 'cherchons la position du mois en cours dans la chaine AtysDate (exemple : 16h - Prima, Nivia 07, 2e CA 2546) For x = 0 To 11 moisOK = Instr(1 ,AtysDate, mois(x), 1) If (moisOK <> 0) OR (moisOK <> Null) Then moisOK = x 'Chouette j'ai trouvé le mois ;-) Exit For End If Next ' cherche la position de la chaine "h - " et en deduit l'heure (exemple : 16h - Prima, Nivia 07, 2e CA 2546) heure = Instr(1 ,AtysDate, "h - ", 1) heure = left(AtysDate, heure-1) ' cherche la position du jours (1 a 30) en se basant sur la position du mois (exemple : 16h - Prima, Nivia 07, 2e CA 2546) posJour = Instr(1 ,AtysDate, mois(moisOK), 1) + Len(mois(moisOK)) If mid (AtysDate, posJour+2, 1) = "," Then numJour = mid (AtysDate, posJour+1, 1) Else numJour = mid (AtysDate, posJour+1, 2) End If ' SAISON Select Case moisOK Case 0 ' Printemps, Winderly resteTempsMoisEntier = 2 * 2160 ' Reste 2 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Eté" Case 1 ' Printemps, Germinally resteTempsMoisEntier = 1 * 2160 ' Reste 1 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Eté" Case 2 ' Printemps, Folially resteTempsMoisEntier = 0 * 2160 ' Reste 0 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Eté" Case 3 ' Ete, Floris resteTempsMoisEntier = 2 * 2160 ' Reste 2 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Automne" Case 4 ' Ete, Medis resteTempsMoisEntier = 1 * 2160 ' Reste 1 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Automne" Case 5 ' Ete, Thermis resteTempsMoisEntier = 0 * 2160 ' Reste 0 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Automne" Case 6 ' Autemone, Harvestor resteTempsMoisEntier = 2 * 2160 ' Reste 2 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Hiver" Case 7 ' Autemone, Frutor resteTempsMoisEntier = 1 * 2160 ' Reste 1 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Hiver" Case 8 ' Autemone, Fallenor resteTempsMoisEntier = 0 * 2160 ' Reste 0 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Hiver" Case 9 ' Hivers, Pluvia resteTempsMoisEntier = 2 * 2160 ' Reste 2 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Printemps" Case 10 ' Hivers, Mystia resteTempsMoisEntier = 1 * 2160 ' Reste 1 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Printemps" Case 11 ' Hivers, Nivia resteTempsMoisEntier = 0 * 2160 ' Reste 0 mois a 2160 minutes avant la prochaine saisons ProchaineSaison = "Printemps" End Select ' JOUR resteTempsJoursEntier = (30 - numJour) * 72 ' En minutes ' HEURE ResteTempsHeureEntiere = (24 - heure) * 3 ' En minutes (précision maxi, donc 3mn) ' Prochaine saison dans ResteEnMn en mintutes ResteEnMn = resteTempsMoisEntier + resteTempsJoursEntier + ResteTempsHeureEntiere ' Date courrante + ResteEnMn = date du changement de saisons ( a 3 mn pres) resutDate = DateAdd("n", ResteEnMn, Now) Select Case Weekday (resutDate) Case 1 nomJour = "Dimanche" Case 2 nomJour = "Lundi" Case 3 nomJour = "Mardi" Case 4 nomJour = "Mercredi" Case 5 nomJour = "Jeudi" Case 6 nomJour = "Vendredi" Case 7 nomJour = "Samedi" End Select MsgBox "Prochaine saison (" & ProchaineSaison & ") le " & nomJour & " " & resutDate, 64, "Prochain changement de saison sur Ryzom ! (V" & version & ")"