Portál AbcLinuxu, 19. listopadu 2025 07:29
V poslednom čase som sa celkom nudil a pri programovani v C som si vsimol jednu celkom zaujímavú vec. Všimol som, že čoskoro budem žiť presne toľko sekúnd, koľko ubehlo od 1.1.1970 0:00 po deň môjho narodenia. Túto skutočnosť som sa rozhodol si overiť a tak som si na to spravil jednoduchý program, ktorý to pre mňa vypočítal.
Keďže som sa pred nedávnom začal zaoberať pythonom a gtk, tak som sa rozhodol, že to spravím, prekvapivo, v pythone a výstup bude v gtk(len úplný základ, čo viac by ste čakali od človeka, ktorý si prečítal 1 a pol kapitoly pygtk tutoriálu :) ).
Dôvod, prečo to píše práve dnes? Práve na dnes(v ranných hodinách) mi totiž vychádza táto oslava.
A aby som len nekecal, tak pridávam aj kód. Ak ho chcete použiť na seba, stačí pomeniť jednotlivé hodnoty premenných hneď na začiatku súboru.
A ešte posledné upozornenie. Daný program nemá zmysel pre ľudí, ktorí majú viac než 19 rokov(a nejaké drobné), dozviete sa akurát, že daná udalosť sa už stala.
P.S: Budem rád za každú zmysluplnú kritiku.
A tu už je ten sľúbený kód:
#!/usr/bin/env python
# This code has no licence
import time
import gtk
# Tu treba dat vase vlastne udaje, aby program spravne fungoval
# Udaje vpisuje v UTC
# Ak niektory z udajov nepoznate, jednoducho namiesto neho vlozte nulu
born_year = 1989 # rok narodenia
born_month = 5 # mesiac narodenia
born_day = 8 # den narodenia
born_hour = 1 # hodina narodenia
born_minute = 0 # minuta narodenia
born_second = 0 # sekunda narodenia
def quit(a,b):
gtk.main_quit()
def compute_month(m):
a = [31,28,31,30,31,30,31,31,30,31,30,31]
r = 0
for i in range(m):
r += a[i]
return r
def bonus_days(y,m):
a = 1972
i = 0
while(a < y):
a += 4
if (a % 100 != 0) or (a % 400 == 0):
i+=1
if a == y and (a%100 != 0 or a % 400 == 0) and m > 2:
i+=1
return i
def compute():
a = int(time.time())
b = ((((born_year - 1970)*365+compute_month(born_month-1)+(born_day-1)+bonus_days(born_year, born_month))*24+born_hour)*60+born_minute)*60 + born_second
c = 2*b - a
if c>0:
s = ""
if c/3600/24 > 0:
s = s + str(c/3600/24) + " day(s), "
if c/3600 > 0:
s = s + str(c/3600%24) + " hour(s), "
if c/60 > 0:
s = s + str(c/60 % 60) + " minute(s), "
s = s + str(c % 60) + " second(s)"
else:
s = "It has already happened"
return s
def compute_gtk(button, w):
s = compute()
button.destroy()
button = gtk.Button(s)
button.connect("clicked", compute_gtk, w)
w.add(button)
button.show()
def compute_shell():
print compute()
#This is gtk version
w = gtk.Window()
button = gtk.Button("Compute")
w.connect("delete_event", quit)
button.connect("clicked", compute_gtk, w)
w.add(button)
w.set_border_width(20)
w.show_all()
gtk.main()
#This is shell version
compute_shell()
Tiskni
Sdílej:
Všimol som, že čoskoro budem žiť presne toľko sekúnd, koľko ubehlo od 1.1.1970 0:00To byste se musel narodit 1.1.1970 0:00. Nebo mi něco nedochází
Nebo tady někde něco hrozně rychle lítá?Spíš někdo…
date -d "1970/1/1 0:0:0 GMT +$(( $( date +"%s" ) - $( date +"%s" -d 'Y/M/D 1:0:0' ) )) seconds"??
date -d "1970/1/1 0:0:0 GMT +$(( 2* $( date +"%s" -d '1989/5/8 1:0:0' ) )) seconds"
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.