[GDRCD 5.4] Meteo mensile
[GDRCD 5.4] Meteo mensile postato il 13/10/2021 10:48:59 nel forum programmazione, open source e hosting e modificato da gdr-online.com il 13/10/2021 12:07:22
Buongiorno a tutti.
Ho vagato in lungo e in largo per vedere se ci fosse qualche soluzione che facesse al caso mio ma non ho trovato nulla.
Molto brevemente, come da titolo, vorrei che il meteo generato randomicamente seguisse però dei criteri in base al mese.
Ad esempio, ottobre mese molto piovoso ecc.
Ho capito dove devo andare ad agire (ho diviso la parte relativa al meteo mettendola in un'altra pagina rispetto ad info location) ma non capisco materialmente come fare. O meglio, provo ma non riesco.
Ho inoltre aggiunto in vocabulary ulteriori condizioni meteo rispetto alle "base".
Per intenderci, ho provato a fare così (è solo uno stralcio) ma non so se va bene.
Inoltre, vorrei che le condizioni/temperature variassero a seconda del giorno/notte
if($ore<14){
$gradi=$minima+(floor($ore/3)*$caso);
} else{
$gradi=$minima+(4*$caso)-((floor($ore/3)*$caso))+(3*$caso);
}
$caso=($giorno+($ore/4))%12;
switch ($caso) {
//METEO MESE DI OTTOBRE //
case 0: if($mese==10){$meteo_cond=$MESSAGE['interface']['meteo']['status'][12];} break;//foschia
case 1: if($mese==10){$meteo_cond=$MESSAGE['interface']['meteo']['status'][9];} break;//nebbia lieve
Qualcuno ha idea?
Non riesco proprio a farmi entrare in testa questo meccanismo.
Pagine → 1
13/10/2021 11:08:32
Dovresti effettuare lo switch direttamente sul mese
$month = date('n'); // questo ti prende il mese corrente da 1 a 12
switch ($month) {
case 1:
//quello che vuoi che accada a gennaio
break;
case 2:
[...]
case 12:
//casistica dicembre
break;
}
13/10/2021 14:01:42 e modificato da psycosocial il 13/10/2021 14:04:43
anneth ha scritto: Dovresti effettuare lo switch direttamente sul mese
$month = date('n'); // questo ti prende il mese corrente da 1 a 12
switch ($month) {
case 1:
//quello che vuoi che accada a gennaio
break;
case 2:
[...]
case 12:
//casistica dicembre
break;
}
Devo sostituirlo a questo pezzo di codice?
if($ore<14){
$gradi=$minima+(floor($ore/3)*$caso);
} else{
$gradi=$minima+(4*$caso)-((floor($ore/3)*$caso))+(3*$caso);
}
$caso=($giorno+($ore/4))%12;
switch ($caso) {
o a questo?
if($PARAMETERS['mode']['auto_meteo'] == 'ON') {
/* Meteo */
$ore = strftime("%H");
$minuti = strftime("%M");
$mese = strftime("%m");
$giorno = strftime("%j");
$caso = ((floor($giorno / 3)) % 2) + 1;
$vento= ((floor($giorno / 3)) % 2) + 1;
Ho provato diverse soluzioni ma non funziona.
13/10/2021 14:41:06
Dovresti intanto comprendere cosa fa tutto il pezzo di codice del meteo, e se ti interessa separarlo poi in base al mese andare ad accorparlo.
questa parte qui
if($ore<14){
$gradi=$minima+(floor($ore/3)*$caso);
} else{
$gradi=$minima+(4*$caso)-((floor($ore/3)*$caso))+(3*$caso);
}
Ti calcola in modo random la temperatura in base a questo switch che c'è nel codice poco prima, e cioè
switch ($mese) {
case 1:
$minima = $PARAMETERS['date']['base_temperature'] + 0;
break;
[...]
C'è già quindi uno switch che ti calcola la temperatura minima in base al mese aggiungendo un valore alla temperatura minima per poi calcolarsela dopo in base all'orario.
La logica è la stessa, se vuoi avere il meteo differenziato per mese.
Il pezzo successivo alla temperatura, per intenderci:
$caso = ($giorno + ($ore / 4)) % 12;
switch($caso) {
case 0:
case 6:
case 10:
case 11:
case 1:
$meteo_cond = $MESSAGE['interface']['meteo']['status'][0];
break;
Ti va a generare in caso un numero random da 0 a 11, ed in base a quello nello switch successivo si prende il valore associato (se 0,6,10, 11,1 è Sereno ad esempio).
Per quello che vuoi fare tu, credo che devi cambiare da questo punto in poi, dicendo al codice di controllare in che mese siamo e successivamente agire come preferisci per generare le condizioni climatiche.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
AlterEgo ↗
Crossout ↗
Project Entropy ↗