Sat, 10 Jun 2017 20:56:48 +0300
Rautatieasema näkyy nyt kylteissä
4 | 1 | from datetime import datetime, date, time, timedelta |
2 | ||
3 | def tänään(): | |
4 | return date.today() | |
5 | 5 | #return date(2017, 1, 10) |
4 | 6 | |
7 | def nyt(): | |
8 | return datetime.now() | |
9 | #return datetime.combine(tänään(), datetime.now().time()) | |
10 | ||
11 | def muotoile_aika(aika, suhteellinen = True): | |
12 | erotus = aika - nyt() | |
5 | 13 | if suhteellinen and erotus < timedelta(minutes = 1): |
14 | return 'nyt' | |
15 | elif suhteellinen and erotus < timedelta(minutes = 10): | |
4 | 16 | return '%dm' % round(erotus.seconds / 60) |
17 | elif aika.date() == tänään(): | |
18 | return '%d:%02d' % (aika.hour, aika.minute) | |
19 | elif erotus < timedelta(7): | |
20 | return aika.strftime('%-a %H:%M') | |
21 | else: | |
22 | return aika.strftime('%-d.%-m. %H:%M') | |
2 | 23 | |
24 | def lue_csv(tiedosto, muunnokset = None): | |
25 | import csv | |
26 | lukija = csv.reader(tiedosto) | |
27 | otsakkeet = next(lukija) | |
28 | for rivi in lukija: | |
29 | tietue = dict(zip(otsakkeet, rivi)) | |
30 | if muunnokset: | |
31 | for avain, muunnos in muunnokset.items(): | |
32 | tietue[avain] = muunnos(tietue[avain]) | |
4 | 33 | yield tietue |
34 | ||
35 | def yö(aika): | |
36 | return aika.hour >= 23 or aika.hour < 5 |