Ich möchte gerne wissen, wie ich eine Zahl um jede Stunde vergrößere.
Also zum Beispiel:
K = 30
K soll jede Stunde zum Beispiel um 1 vergrößert werden.
Danke im vorraus

Code: Alles auswählen
import datetime
class TimeDependantValue(object):
def __init__(self, initial, change, time_delta, start_time=None):
self.start = start_time if start_time is not None else datetime.datetime.now()
self.initial = initial
self.change = change
self.time_delta = time_delta
@property
def value(self):
current = datetime.datetime.now()
times = 0
while current > self.start:
times += 1
current -= self.time_delta
return self.initial + (self.change * times)
k = TimeDependantValue(30, 1, datetime.timedelta(hours=1))
k.value # => 30
# 3 stunden spaeter ...
k.value # => 33
Code: Alles auswählen
import time
class TimedValue(object):
def __init__(self, value, seconds):
self._value = value
self._seconds = seconds
self._creation = time.time()
@property
def value(self):
current = time.time()
return self._value + int((current - self._creation) / self._seconds)
Code: Alles auswählen
>>> K = TimedValue(30, 10)
>>> K.value
30
>>> # after 10 seconds...
>>> K.value
31
>>> # after 20 seconds...
>>> K.value
32
Cofi's Code funktioniert auch...A1245x hat geschrieben:Dein Code funktioniert, ...
Das erschließt sich doch sehr einfach aus den Argumenten, die beim Erstellen eines `TimedValue` Exemplares verwendet werden.A1245x hat geschrieben:aber was muss Ich ändern, damit es sich zum Beispiel jede 30s statt 10s ändert?
Was meinst Du mit 'offline'? Ab dem Moment, ab dem das `TimedValue` Exemplar (in diesem Beispiel an den Namen 'K' gebunden) nicht mehr existiert, kannst Du darauf auch nicht mehr zugreifen und Du erhältst demnach auch keine Werte mehr. Wenn Du also das Programm, innerhalb dessen Du mit `TimedValue` Exemplaren arbeitest, beendest, musst Du diese natürlich abspeichern.A1245x hat geschrieben:Und ändert das weiter wenn das Programm "offline" ist?
Code: Alles auswählen
lt2 = time.localtime()
lt = lt2[1:2]
K = 30
#Und hier fängt mein Problem an:
if lt > 30:
K + 1
print(K)
print("Schließen:Eingabe")
input()
else:
print(K)
print("Schließen:Eingabe")
input()
Ja, wenn man das fehlende `self.` ergaenzt und den Tippfehler korrigiert ..mutetella hat geschrieben:Cofi's Code funktioniert auch...A1245x hat geschrieben:Dein Code funktioniert, ...
Ich glaube, Dein Problem fängt schon früher an...A1245x hat geschrieben:Und hier fängt mein Problem an
Code: Alles auswählen
import time
TAG = 0
MONAT = 0
JAHR = 0
x = 1
y = 1
z = 1
a = 2014
b = 4
c = 12
d = 0
e = 0
f = 0
g = 0
h = 0
i = 0
A = 2014 + JAHR
B = 5 + MONAT
C = 12 + TAG
D = 0
E = 0
F = 0
G = 0
H = 0
I = 0
dztupel1 = a, b, c, d, e, f, g, h, i
damals1 = time.mktime(dztupel1)
print("Zeit 1:", time.strftime("%d.%m.%Y %H:%M:%S",
dztupel1))
dztupel2 = A, B, C, D, E, F, G, H, I
damals2 = time.mktime(dztupel2)
print("Zeit 2:", time.strftime("%d.%m.%Y %H:%M:%S",
dztupel2))
diff_sek = damals2 - damals1
diff_min = diff_sek/60
diff_std = diff_min/60
diff_tag = diff_std/24
diff_monat = diff_tag/30
diff_jahr = diff_tag/300
if diff_tag > x:
print("TAG")
TAG + 1
else:
time.sleep(0)
if diff_monat > y:
print("MONAT")
MONAT + 1
else:
time.sleep(0)
if diff_jahr > z:
print("JAHR")
JAHR + 1
else:
time.sleep(0)
print("Schließen:Eingabe")
input()
Code: Alles auswählen
import datetime
START_DATE = datetime.datetime(2014,4,12)
def generate_key_values(current_date):
months, days = divmod((current_date - START_DATE).days, 30)
years, months = divmod(months, 360)
return years, months, days
def main():
current_date = datetime.datetime(2014,5,12)
print(generate_key_values(current_date))
if __name__ == '__main__':
main()