utasok = []
kedv_b = ['TAB', 'NYB']
ingy_b = ['NYP', 'RVS', 'GYK']

# 1. feladat
f = open("utasadat.txt")
for sor in f:
    m, d, a, t, e = sor.split()
    m = int(m)
    d, i = d.split("-")
    utasok.append([m, d, i, a, t, e])
f.close()

# 2. feladat
print("2. feladat:\nA buszra", len(utasok), "utas akart felszállni.")

# 3. feladat
ervenytelen, kedv, ingy = 0, 0, 0
for m, d, i, a, t, e in utasok:
    if (t == "JGY" and e == "0") or (t != "JGY" and e < d):
        ervenytelen += 1
    else:
        if t in kedv_b:  # 5.feladat
            kedv += 1
        if t in ingy_b:
            ingy += 1
print("3. feladat:\nA buszra", ervenytelen, "utas nem szállhatott fel.")

# 4. feladat
megallok = [0] * 30
for m, d, i, a, t, e in utasok:
    megallok[m] += 1
print("4. feladat:\nA legtöbb utas ({} fő) a {}. megállóban próbált felszállni.".format(max(megallok),
                                                                                        megallok.index(max(megallok))))

# 5. feladat
print("5. feladat:\nIngyenesen utazók száma:", ingy, "fő\nA kedvezményesen utazók száma:", kedv, "fő")

# 6. feladat
print("6. feladat:")


def napokszama(e1, h1, n1, e2, h2, n2):
    h1 = (h1 + 9) % 12
    e1 = e1 - h1 // 10
    d1 = 365 * e1 + (e1 // 4) - (e1 // 100) + (e1 // 400) + ((h1 * 306 + 5) // 10) + n1 - 1
    h2 = (h2 + 9) % 12
    e2 = e2 - (h2 // 10)
    d2 = 365 * e2 + (e2 // 4) - (e2 // 100) + (e2 // 400) + ((h2 * 306 + 5) // 10) + n2 - 1
    return d2 - d1


def datum(date):
    # a szöveges dátimoz év, hónap, napra bontja
    ev = date[:4]
    honap = date[4:6]
    nap = date[6:]
    return int(ev), int(honap), int(nap)

# 7. feladat
ki = open("figyelmeztetes.txt", "w")
for m, d, i, a, t, e in utasok:
    if t != "JGY" and e >= d:
        if napokszama(*datum(d), *datum(e)) <= 3:
            print("{0} {1:02}-{2:02}-{3:02}".format(a, *datum(e)), file=ki)
ki.close()
print("7. feladat\nFájlbaírás kész.")
