Page 12 sur 25

Re: les records un mois donné

Posté : 11 oct. 2011, 12:58
par webmaster
Bonjour,
Lud29 a écrit :Bonsoir,
Y a-t-il moyen d’avoir la direction de la rafale maxi pour un jour donné ? Je ne pense pas, mais sait-on jamais !
Non, pas à ma connaissance non plus !

Re: les records un mois donné

Posté : 11 oct. 2011, 14:22
par Tudgur
webmaster a écrit : Non, mais à condition que tu sois certain que cette page sera ouverte au moins une fois par jour pour incrémenter ta base sur les années précédentes !
Ensuite pour la valeur du jour le mieux est qu'elle soit ouverte le plus tard possible.
Alors dans l'index !
Mais pour les valeurs du jour il y a effectivement un risque.
webmaster a écrit : Alors là, jolie, très jolie même !
C'est la même qu'avant à un minuscule détail près : les records du mois étaient dans un petit tableau à part. (tag de Chriss oblige)
webmaster a écrit : :evil: :evil: :evil: 10 pages plus haut !
Si je ne me suis pas trompé dans le code, cela devrait être totalement transparent, à suivre....
Gloups ! :oops: Désolé... Il y a eu tellement de posts !
Pour le code, je te fais confiance.

Re: les records un mois donné

Posté : 11 oct. 2011, 21:05
par webmaster
Tudgur a écrit : Pour le code, je te fais confiance.
Heuuuu nous en reparlerons dans quatre mois !

Re: les records un mois donné

Posté : 11 oct. 2011, 21:32
par Lud29
webmaster a écrit : Non, pas à ma connaissance non plus !
Dommage, merci pour ta réponse !
webmaster a écrit :
Tudgur a écrit : Pour le code, je te fais confiance.
Heuuuu nous en reparlerons dans quatre mois !
Pour moi il manque un ($jour = date("z") + 1) du 1er janvier au 28 février (date("z") < 60), ou alors j’ai loupé quelque chose dans ton code…

Bonne nuit.

Re: les records un mois donné

Posté : 11 oct. 2011, 22:06
par webmaster
Lud29 a écrit : Pour moi il manque un ($jour = date("z") + 1) du 1er janvier au 28 février (date("z") < 60), ou alors j’ai loupé quelque chose dans ton code…

Bonne nuit.
Bonsoir,

Code : Tout sélectionner

if (date("L") == 1 and date("z") >= 60) {$jour = date("z") + 1;
}
elseif (date("L") == 0 and date("z") >= 60) {$jour = date("z") + 2;
}
Je me suis peut être planté, c'est possible.

Reprenons si bissextile:
28 Février - 59ème jour = date date("z") + 1 -> $jour = 59
29 Février - 60ème jour = date date("z") + 1 -> $jour = 60
01 Mars - 61ème jour = date date("z") + 1 -> $jour = 61

Si non bissextile:
28 Février - 59ème jour = date date("z") + 1 -> $jour = 59
01 Mars - 60ème jour = date date("z") + 2 -> $jour = 61
02 Mars - 61ème jour = date date("z") + 2 -> $jour = 62

Je ne vois pas de problème, mais je loupe peut être quelque chose !

Re: les records un mois donné

Posté : 11 oct. 2011, 22:59
par Lud29
webmaster a écrit : Reprenons si bissextile:
28 Février - 59ème jour = date date("z") + 1 -> $jour = 59
29 Février - 60ème jour = date date("z") + 1 -> $jour = 60
01 Mars - 61ème jour = date date("z") + 1 -> $jour = 61

Si non bissextile:
28 Février - 59ème jour = date date("z") + 1 -> $jour = 59
01 Mars - 60ème jour = date date("z") + 2 -> $jour = 61
02 Mars - 61ème jour = date date("z") + 2 -> $jour = 62
Je suis d’accord avec ça !
Mais pour renter dans le « if » ou le « ifelse », il faut dans les deux cas que « date("z") » soit supérieur ou égal à 60 « and date("z")>= 60 » !
Si nous sommes entre le 1er janvier et le 29 février (bissextile) ou 1er mars inclus (non bissextile), « $jour » ne sera pas déclaré !
Par exemple le cas du 1er janvier, date("z") sera égal à « 0 », il faudra donc un « $jour = date("z") + 1 » ! Non ?

Image

Je vois plutôt ceci:

Code : Tout sélectionner

if (date("L") == 0 and date("z") >= 59) {$jour = date("z") + 2;
 }
else {$jour = date("z") + 1;
}
A+

Re: les records un mois donné

Posté : 12 oct. 2011, 06:43
par Tudgur
Bonjour,

Aïe aïe aïe, affaire de spécialistes !
Et par rapport à l'heure UTC, ça dit quoi ?

Je me suis peut être emballé pour mettre mes nouveaux tableaux en ligne.
Surprise ce matin.
Hier j'ai rempli la base pour la date (année) de la pluie max et de l'ensoleillement max journaliers jusqu'au 31 décembre.
Mais ce matin, plus de dates pour aujourd'hui, effacées de la base !
De plus, l'ensoleillement était celui de la veille ! (pb heure UTC ?)
La hauteur de pluie affichée n'était pas la bonne...
Le reste est bon...

Edit : je viens d'effacer une bonne partie de ce post.
J'ai fait quelques modifs dans les fichier extremes.php : j'avais laissé les références aux dates et heures pour la pluie et l'ensoleillement.
Et il me manquait les lignes :
$wswin_date_pluie_max='%ws_date%';
$wswin_date_soleil_max='%ws_date%';

J'ai fait un test en "faisant tomber" 4mm de pluie ce matin pour battre le record du 12 octobre.
Il s'est bien affiché avec la date d'aujourd'hui qui a écrasé l'autre..

Re: les records un mois donné

Posté : 12 oct. 2011, 09:17
par webmaster
Bonjour,
Tudgur a écrit : Aïe aïe aïe, affaire de spécialistes !
Et par rapport à l'heure UTC, ça dit quoi ?
Et Lud29 a bien fait de passer car il a entièrement raison !
J'ai totalement mélangé la valeur calculée et la valeur primaire sur laquelle est établie la condition.
Le script PHP travaille sur l'heure du serveur.
Tudgur a écrit : Hier j'ai rempli la base pour la date (année) de la pluie max et de l'ensoleillement max journaliers jusqu'au 31 décembre.
Là je ne comprends pas l’intérêt de remplir ces lignes manuellement alors qu'elles vont se remplir automatiquement !
Autant pour les extrêmes mensuels je suis entièrement d'accord et cela allège grandement le code, mais pas pour les extrêmes journaliers.

Re: les records un mois donné

Posté : 12 oct. 2011, 09:52
par Tudgur
webmaster a écrit :
Tudgur a écrit : Hier j'ai rempli la base pour la date (année) de la pluie max et de l'ensoleillement max journaliers jusqu'au 31 décembre.
Là je ne comprends pas l’intérêt de remplir ces lignes manuellement alors qu'elles vont se remplir automatiquement !
Autant pour les extrêmes mensuels je suis entièrement d'accord et cela allège grandement le code, mais pas pour les extrêmes journaliers.
Si on considère la temp_mini par exemple, on peut écrire ceci

Code : Tout sélectionner

	$wswin_2006_temp_min='%minvalpast[6~%ws_day2%~%ws_month2%~2006]%';    
	$wswin_2006_date_temp_min='%ws_cutstr=1~6~%mindatepast[6~%ws_day2%~%ws_month2%~2006]%%';
   $wswin_2006_heure_temp_min='%mintimepast[6~%ws_day2%~%ws_month2%~2006]%';
Mais pour la pluie maxi d'un jour (de 2006 à 2010); il n'y a aucun tag pour donner la date et encore moins l'heure (qui ne peut pas exister)

Code : Tout sélectionner

   $wswin_2006_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2006]%';	
	$wswin_2007_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2007]%';	
	$wswin_2008_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2008]%';		
	$wswin_2009_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2009]%';		
	$wswin_2010_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2010]%';		
	$wswin_pluie_max='%rainday%';
	$wswin_date_pluie_max='%ws_cutstr=1~6~%ws_date%%';
Idem pour l'ensoleillement !
Comment la date de la pluie max pourrait-elle être inputée dans la base ?

Dans extremes.php, j'avais ceci :

Code : Tout sélectionner

if ($pluie_max < $wswin_2006_pluie_max) {$pluie_max=$wswin_2006_pluie_max; $date_pluie_max=$wswin_2006_date_pluie_max; $heure_pluie_max=$wswin_2006_heure_pluie_max;}
if ($pluie_max < $wswin_2007_pluie_max) {$pluie_max=$wswin_2007_pluie_max; $date_pluie_max=$wswin_2007_date_pluie_max; $heure_pluie_max=$wswin_2007_heure_pluie_max;}
if ($pluie_max < $wswin_2008_pluie_max) {$pluie_max=$wswin_2008_pluie_max; $date_pluie_max=$wswin_2008_date_pluie_max; $heure_pluie_max=$wswin_2008_heure_pluie_max;}
if ($pluie_max < $wswin_2009_pluie_max) {$pluie_max=$wswin_2009_pluie_max; $date_pluie_max=$wswin_2009_date_pluie_max; $heure_pluie_max=$wswin_2009_heure_pluie_max;}
if ($pluie_max < $wswin_2010_pluie_max) {$pluie_max=$wswin_2010_pluie_max; $date_pluie_max=$wswin_2010_date_pluie_max; $heure_pluie_max=$wswin_2010_heure_pluie_max;}
if ($pluie_max < $wswin_pluie_max) {$pluie_max=$wswin_pluie_max; $date_pluie_max=$wswin_date_pluie_max; $heure_pluie_max=$wswin_heure_pluie_max;}
que je viens de modifier comme ceci :

Code : Tout sélectionner

if ($pluie_max < $wswin_2006_pluie_max) {$pluie_max=$wswin_2006_pluie_max;}
if ($pluie_max < $wswin_2007_pluie_max) {$pluie_max=$wswin_2007_pluie_max;}
if ($pluie_max < $wswin_2008_pluie_max) {$pluie_max=$wswin_2008_pluie_max;}
if ($pluie_max < $wswin_2009_pluie_max) {$pluie_max=$wswin_2009_pluie_max;}
if ($pluie_max < $wswin_2010_pluie_max) {$pluie_max=$wswin_2010_pluie_max;}
if ($pluie_max < $wswin_pluie_max) {$pluie_max=$wswin_pluie_max; $date_pluie_max=$wswin_date_pluie_max;}
idem pour l'ensoleillement.
De 2006 à 2010, il ne peut y avoir de date, ce qui explique que celles que j'avais rentrées ont été effacées.
Le record de pluie un 12 octobre étant en 2006, date que j'ai rentrée hier, cette date a été effacée.
Cette ligne

Code : Tout sélectionner

if ($pluie_max < $wswin_2006_pluie_max) {$pluie_max=$wswin_2006_pluie_max; $date_pluie_max=$wswin_2006_date_pluie_max; $heure_pluie_max=$wswin_2006_heure_pluie_max;}
ne donne aucune date et efface donc celle que j'avais mise.

Après mes modifs, j'ai fais des tests : la date rentrée manuellement n'est pas effacée et si le record est aujourd'hui (essai manuel de 4mm de pluie), la pluvio et la date sont modifiées dans la base.

Je fais une erreur quelque part ?

Ou alors, peut-être peut-on faire ceci tout simplement :

Code : Tout sélectionner

$wswin_2006_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2006]%';	
$wswin_2006_date_pluie_max='2006';
$wswin_2007_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2007]%';	
$wswin_2007_date_pluie_max='2007';
$wswin_2008_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2008]%';		
$wswin_2008_date_pluie_max='2008';
$wswin_2009_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2009]%';		
$wswin_2009_date_pluie_max='2009';
$wswin_2010_pluie_max='%avgvalpast[34~%ws_day2%~%ws_month2%~2010]%';		
$wswin_2010_date_pluie_max='2010';
$wswin_pluie_max='%rainday%';
$wswin_date_pluie_max='%ws_cutstr=1~6~%ws_date%%';
Dans ce cas les années devraient être inputées automatiquement...

Et ceci serait valables pour tous les tags on ne veut pas de l'heure.

Re: les records un mois donné

Posté : 12 oct. 2011, 10:05
par webmaster
Bonjour,
Lud29 a écrit : Je vois plutôt ceci:

Code : Tout sélectionner

if (date("L") == 0 and date("z") >= 59) {$jour = date("z") + 2;
 }
else {$jour = date("z") + 1;
}
A+
Oui tu as raison, ou alors de cette manière également.

Code : Tout sélectionner

$jour = date("z") + 1;
if (date("L") == 0 and $jour >= 60) {$jour = $jour + 1;
}

Re: les records un mois donné

Posté : 12 oct. 2011, 10:16
par webmaster
Tudgur a écrit : Dans ce cas les années devraient être imputées automatiquement...
Et ceci serait valables pour tous les tags on ne veut pas de l'heure.
Si une valeur de (le jour et le mois présent en 2006 par exemple) est plus forte que les autres, obligatoirement elle est mesurée le jour et le mois présent en 2006.
Pourquoi ne pas imputer la variable date de cette manière ?

Code : Tout sélectionner

    $wswin_2006_soleil_max='%ws_timetoval[%ws_getmem[55]%]%';
    $wswin_2006_date_soleil_max='%ws_day2%/%ws_month2%/2006';
Idem pour les autres années et la pluie !

Re: les records un mois donné

Posté : 12 oct. 2011, 11:00
par Tudgur
webmaster a écrit : Pourquoi ne pas imputer la variable date de cette manière ?

Code : Tout sélectionner

    $wswin_2006_soleil_max='%ws_timetoval[%ws_getmem[55]%]%';
    $wswin_2006_date_soleil_max='%ws_day2%/%ws_month2%/2006';
Parce que nous sommes le 12 octobre et %ws_day2% va donner 12 !
De même, %ws_month2% va donner 10 !
Le titre de mon tableau est (aujourd'hui) : "Les records un 12 octobre"
Donc inutile d'avoir comme date 12/10/2006. Seul le 2006 est intéressant !!!
D'où ma proposition :

Code : Tout sélectionner

    $wswin_2006_soleil_max='%ws_timetoval[%ws_getmem[55]%]%';
    $wswin_2006_date_soleil_max='2006';

Re: les records un mois donné

Posté : 12 oct. 2011, 11:35
par webmaster
Oui mais ce n'est pas grave puisque durant l'affichage tu tronques l’excédant.
Mais bon, que tu ne garde que l'année ne pose pas de problème particulier.
Mais cela n'explique pas pourquoi tu veux rentrer manuellement cette date alors que tu peux l'avoir de manière automatique !

Re: les records un mois donné

Posté : 12 oct. 2011, 11:39
par Lud29
Bonjour,
webmaster a écrit : Oui tu as raison, ou alors de cette manière également.

Code : Tout sélectionner

$jour = date("z") + 1;
if (date("L") == 0 and $jour >= 60) {$jour = $jour + 1;
}
Oui, c’est vrai ! :wink:
Tudgur a écrit : Et par rapport à l'heure UTC, ça dit quoi ?
Si tu veux être en heure UTC dans ton script, tu peux utiliser la fonction suivante avant d’utiliser la fonction « date() » :

Code : Tout sélectionner

date_default_timezone_set('UTC');
A+

Re: les records un mois donné

Posté : 12 oct. 2011, 13:11
par Tudgur
webmaster a écrit :Mais cela n'explique pas pourquoi tu veux rentrer manuellement cette date alors que tu peux l'avoir de manière automatique !
Non, je ne veux pas rentrer manuellement les date !
Je pensais que je devais le faire.
Ce n'est que ce matin que je me suis rendu compte (après les problèmes rencontrés) que je pouvais / devais ajouter ce genre de ligne :

Code : Tout sélectionner

$wswin_2006_date_soleil_max='2006';
Et Dieu sait si c'est long de rechercher ces dates et de les rentrer manuellement!!! :twisted:
Travail inutile. Tant pis.
Lud29 a écrit : Si tu veux être en heure UTC dans ton script, tu peux utiliser la fonction suivante avant d’utiliser la fonction « date() » :

Code : Tout sélectionner

date_default_timezone_set('UTC');
Autrement dit, si je comprends bien, cette nuit à 0h05 locale, on a changé de ligne dans la base alors que Wswin qui est en UTC, en était encore à 22h05 la veille.
Et donc c'est mon ensoleillement d'hier qui a été enregistré pour aujourd'hui dans la base.
C'est bien ça ?
Il faut donc que je rajoute cette ligne !

Edit : où est l'erreur ?
Voici mes tag d'ensoleillement dans wswin_extremes.txt :

Code : Tout sélectionner

	$wswin_2007_soleil_max='%ws_setmem[55]=%ws_cutstr=0~7~%sundaypast[%ws_day2%~%ws_month2%~2007]%%% %ws_timetoval[%ws_getmem[55]%]%'; 	
	$wswin_2007_date_soleil_max='2007';
	$wswin_2008_soleil_max='%ws_setmem[55]=%ws_cutstr=0~7~%sundaypast[%ws_day2%~%ws_month2%~2008]%%% %ws_timetoval[%ws_getmem[55]%]%';
	$wswin_2008_date_soleil_max='2008';
	$wswin_2009_soleil_max='%ws_setmem[55]=%ws_cutstr=0~7~%sundaypast[%ws_day2%~%ws_month2%~2009]%%% %ws_timetoval[%ws_getmem[55]%]%';
	$wswin_2009_date_soleil_max='2009';
	$wswin_2010_soleil_max='%ws_setmem[55]=%ws_cutstr=0~7~%sundaypast[%ws_day2%~%ws_month2%~2010]%%% %ws_timetoval[%ws_getmem[55]%]%';	
	$wswin_2010_date_soleil_max='2010';
	$wswin_soleil_max='%sunday_d%';
	$wswin_date_soleil_max='%ws_cutstr=1~6~%ws_date%%';
Ce qui donne :

Code : Tout sélectionner

	$wswin_2007_soleil_max=' '; 	
	$wswin_2007_date_soleil_max='2007';
	$wswin_2008_soleil_max=' 2.25';
	$wswin_2008_date_soleil_max='2008';
	$wswin_2009_soleil_max=' 9.23';
	$wswin_2009_date_soleil_max='2009';
	$wswin_2010_soleil_max=' 9.02';	
	$wswin_2010_date_soleil_max='2010';
	$wswin_soleil_max='2.93';
	$wswin_date_soleil_max='2011';
Et les graphiques (ainsi que le tag de chriss) donnent :
2007 : 2:20h
2008 : 9:14h
2009 : 9:01h
2010 : 8:33h
2011 : c'est bon.

Il y a un décalage d'une année et encore, 2:20h ça n'a jamais fait 2.25h mais2.33h !!!
Je suis bigleux ou quoi ? Où est l'erreur ?
Pourquoi toujours 55 dans les tags ?