Portál AbcLinuxu, 30. dubna 2025 13:31
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.