def __getValori(self, P_lValoriMassimi, P_nGiornoDiPartenza = 0, P_nRisultati = 2): """ Restituisce i prossimi valori massimi o minimi di marea @param P_lValoriMassimi: Booleano che indica se il valore di marea è un minimo (False) o un massimo (True) @param P_nGiornoDiPartenza: Integer che indica a partire da oggi quanti giorni in avanti riguarda la marea @param P_nRisultati: Integer che indica quanti risultati deve restituire @return Un istanza di clsMarea con la previsione delle maree """ objRiga = clsMarea() objRisultati = [] isinstance(objRisultati, clsMarea) cOutput = "" nConto = 0 dDataCercata = datetime.datetime.combine(datetime.date.today(), datetime.time(0, 0, 0)) if (P_nGiornoDiPartenza > 0): dDataCercata += datetime.timedelta(days=P_nGiornoDiPartenza) lGiaScritto = False for objRiga in self._aLista: if ((objRiga.massimo == P_lValoriMassimi) and (objRiga.data >= dDataCercata) and (nConto < P_nRisultati)): objRisultati.append(objRiga) nConto += 1 return objRisultati
def __getValori(self, P_lValoriMassimi, P_nGiornoDiPartenza=0, P_nRisultati=2): """ Restituisce i prossimi valori massimi o minimi di marea @param P_lValoriMassimi: Booleano che indica se il valore di marea è un minimo (False) o un massimo (True) @param P_nGiornoDiPartenza: Integer che indica a partire da oggi quanti giorni in avanti riguarda la marea @param P_nRisultati: Integer che indica quanti risultati deve restituire @return Un istanza di clsMarea con la previsione delle maree """ objRiga = clsMarea() objRisultati = [] isinstance(objRisultati, clsMarea) cOutput = "" nConto = 0 dDataCercata = datetime.datetime.combine(datetime.date.today(), datetime.time(0, 0, 0)) if (P_nGiornoDiPartenza > 0): dDataCercata += datetime.timedelta(days=P_nGiornoDiPartenza) lGiaScritto = False for objRiga in self._aLista: if ((objRiga.massimo == P_lValoriMassimi) and (objRiga.data >= dDataCercata) and (nConto < P_nRisultati)): objRisultati.append(objRiga) nConto += 1 return objRisultati
def __str__(self): """ Scrive l'elenco completo delle maree previsto dal centro (override della funzione __str__ standard) """ cOutput = "" objMarea = clsMarea() for objMarea in self._aLista: """ Visualizza la linea solo se la previsione si riferisce ad una data non passata """ if (objMarea.data >= self._dDataOdierna): cMaxMin = "massimo" if (objMarea.massimo) else "minimo" cOutput += "Il {0} e' previsto un {1:7} di {2:-3}cm alle {3}\n".format( objMarea.data.strftime("%d %B"), cMaxMin, objMarea.valore, objMarea.data.strftime("%H:%M")) return cOutput
def cercaValori(self): """ Cerca le indicazioni delle maree nel file HTML e restituisce una lista di istanze clsMarea """ aLista = [] nPos = 0 objTrovato = self.__cercaTag("th", nPos) while (objTrovato != None): objRiga = clsMarea() """ Cerca la data """ cFormatoData = "%d/%m/%Y %H:%M" dData = datetime.datetime.fromtimestamp( time.mktime( time.strptime(objTrovato["contenuto"], cFormatoData))) objRiga.data = dData nPos = objTrovato["posizione"] + 1 # Cerca se è un massimo o minimo objTrovato = self.__cercaTag("td", nPos) if (objTrovato["posizione"] >= 0): if (objTrovato["contenuto"] == "massimo"): objRiga.massimo = True else: objRiga.massimo = False nPos = objTrovato["posizione"] + 1 else: objRiga.massimo = False # Cerca quant'è il valore objTrovato = self.__cercaTag("td", nPos) if (objTrovato["posizione"] >= 0): try: objRiga.valore = int(objTrovato["contenuto"]) except Exception: objRiga.valore = 0 nPos = objTrovato["posizione"] + 1 else: objRiga.valore = 0 aLista.append(objRiga) # Passa al successivo nPos = objTrovato["posizione"] + 1 objTrovato = self.__cercaTag("th", nPos) return aLista
def cercaValori(self): """ Cerca le indicazioni delle maree nel file HTML e restituisce una lista di istanze clsMarea """ aLista = [] nPos = 0 objTrovato = self.__cercaTag("th", nPos) while(objTrovato != None): objRiga = clsMarea() """ Cerca la data """ cFormatoData = "%d/%m/%Y %H:%M" dData = datetime.datetime.fromtimestamp(time.mktime(time.strptime(objTrovato["contenuto"], cFormatoData))) objRiga.data = dData nPos = objTrovato["posizione"] + 1 # Cerca se è un massimo o minimo objTrovato = self.__cercaTag("td", nPos) if(objTrovato["posizione"] >= 0): if (objTrovato["contenuto"] == "massimo"): objRiga.massimo = True else: objRiga.massimo = False nPos = objTrovato["posizione"] + 1 else: objRiga.massimo = False # Cerca quant'è il valore objTrovato = self.__cercaTag("td", nPos) if(objTrovato["posizione"] >= 0): try: objRiga.valore = int(objTrovato["contenuto"]) except Exception: objRiga.valore = 0 nPos = objTrovato["posizione"] + 1 else: objRiga.valore = 0 aLista.append(objRiga) # Passa al successivo nPos = objTrovato["posizione"] + 1 objTrovato = self.__cercaTag("th", nPos) return aLista