Seite 1 von 1

Datum / Uhrzeit - Generierung

Verfasst: Samstag 28. November 2015, 14:31
von gerald123
Hey, ich muss für Input-File (Simulationsprogramm) folgendes Zeitformat generieren: Monat/Tag/Stunde/Minute. in einer 10min Auflösung: Bsp. 1,1,1,10 (=1.Jänner um 00:10).

Code: Alles auswählen

import numpy as np
size = (2190,4)
epw = np.zeros(size)
k = 0 # Zählt Schritte
Monat = 0
Tag = 0

Jahr= [31,28,31,30,31,30,31,31,30,31,30,31]
for Monat in Jahr:
    for Tage in Monat:
        for Stunde in range(1,25):
            for Minute in range(1,7):
                epw[k,0] = Monat
                epw[k,1] = Tag
                epw[k,2] = Stunde
                epw[k,3] = Minute*10
                k=k+1
Funktioniert leider so nicht "'int' object is not iterable".
Meine Frage: Ist diese Methode so grundsätzlich geeignet? Wenn ja, habt ihr eine Idee, wie ich den Fehler "'int' object is not iterable" beheben kann?

Danke und beste Grüße

Re: Datum / Uhrzeit - Generierung

Verfasst: Samstag 28. November 2015, 14:46
von BlackJack
@gerald123: Das ist *so* simpel und offensichtlich das Du da selber drauf kommen solltest. Die nötigen Grundlagen kennst Du ganz offensichtlich, denn alles was Du brauchst steht im Grunde schon da.

Überleg doch mal was in der Fehlerzeile für konkrete Werte stehen wenn die ausgeführt wird.

Re: Datum / Uhrzeit - Generierung

Verfasst: Samstag 28. November 2015, 14:56
von snafu
@gerald123
Du iterierst über die Elemente von Jahr und die sind bei dir Zahlen. Das heißt: An `Monat` wird ein Zahlwert gebunden. Über diesen jeweiligen Zahlwert läuft nun eine weitere Iteration für `Tage`. Das führt aber zum Fehler, weil über Zahlen nicht iteriert werden kann. Mit anderen Worten: Du hast eine Schleife zuviel für deine Datenstruktur eingebaut.

Re: Datum / Uhrzeit - Generierung

Verfasst: Samstag 28. November 2015, 15:40
von BlackJack
@snafu: Da ist keine Schleife zu viel. Dich verwirrt eventuell die Namensgebung, denn `Jahr` müsste eigentlich `monate` heissen (oder `tage_pro_monat`) und `Tage` müsste `tag` heissen (heisst im innersten Schleifenkörper dann ja auch ”fälschlicherweise” `Tag`).

Re: Datum / Uhrzeit - Generierung

Verfasst: Samstag 28. November 2015, 19:25
von Sirius3
@gerald123: Für Datumsberechnungen gibt es das datetime-Modul:

Code: Alles auswählen

import numpy as np
size = (2190, 4)
epw = np.zeros(size)
start = datetime.datetime(2016,1,1)
for k in range(epw.shape[1]):
    epw[k, :] = (start + datetime.timedelta(seconds=600*k)).timetuple()[1:5]