fajl = open('uzemanyag.txt')
forras=fajl.read().splitlines()
fajl.close()
adatok = [] # év hó nap benzin gázolaj
for sor in forras:
    sor1 = sor.split()
    sszamok = [int(s) for s in sor1]
    adatok.append(sszamok)
print('2. feladat\nSorok száma:',len(adatok))

print('\n3. feladat\nÍrjon be egy 2011.01.01 és 2014.12.31. közé eső dátumot!')
ev = 2013#int(input('Kérem az évet: '))
ho = 11#int(input('Kérem a hónapot: '))
nap = 27#int(input('Kérem a napot: '))
sor = [s for s in adatok if s[0]==ev and s[1]==ho and s[2]==nap]
print(f'Benzin: {sor[0][3]} Ft, gázolaj: {sor[0][4]} Ft.' if sor else 'Nincs ilyen nap az adatbázisban.')
    
nott = len([1 for i in range(1,len(adatok)) if adatok[i][3]>adatok[i-1][3]])
csokkent = len([1 for i in range(1,len(adatok)) if adatok[i][3]<adatok[i-1][3]])
print(f'\n4. feladat\nA benzin ára {nott} alkalommal nőtt, {csokkent} alkalommal csökkent.')

maxbenzin = max([a[3] for a in adatok])
maxindex = [adatok.index(a) for a in adatok if a[3]==maxbenzin][0] #a későbbiek miatt is célszerű az indexet eltárolni
maxadat = adatok[maxindex]
print(f'\n5. feladat\nA benzin legmagasabb ára {maxadat[3]} Ft, dátuma: {maxadat[0]}.{maxadat[1]}.{maxadat[2]}.')

i = maxindex
hanyszor = 0
while adatok[i+1][3]<=adatok[i][3] and i<len(adatok):
    i += 1
    hanyszor += 1
nov = adatok[i+1]
print(f'\n6. feladat\nA növekedés kezdete: {nov[0]}.{nov[1]}.{nov[2]}, addig {hanyszor} alkalommal csökkent.')

napok = [] #minden napot tartalmaz: év, hó, nap, gázoljár,benzinár; kezdetben 0-kal feltötlve; a benzinár a 8. feladat miatt kell
for ev in range(2011,2015):
    for ho in range(1,13):
        if ev==2012:
            honapok = [31,29,31,30,31,30,31,31,30,31,30,31]
        else:
            honapok = [31,28,31,30,31,30,31,31,30,31,30,31]
        for nap in range(1,honapok[ho-1]+1):
            napok.append([ev,ho,nap,0,0])
# gazolajar aktuális gázolajár
for nap in napok:
    valtonap = [a for a in adatok if a[0]==nap[0] and a[1]==nap[1] and a[2]==nap[2]]
    if valtonap:
        gazolajar = valtonap[0][4] # a valtonap egy lista, a 0. elemét kell venni!
        benzinar = valtonap[0][3]
    nap[3]=gazolajar
    nap[4]=benzinar
    #print(nap,valtonap)
atlag = sum([n[3] for n in napok])/(3*365+366)
print(f'\n7. feladat\nA gázolaj átlagára {round(atlag,2)} Ft volt.')

print('\n8. feladat')
idoszakban = False  #egy mutató: jó időszakban vagyunk-e
idoszakok = []      #a jó időszakok kezdete és vége
idoszak = []
for napindex in range(len(napok)):
    nap = napok[napindex]
    if 400<=nap[3]<=420 and 400<=nap[4]<=420: #jó nap - 
        if not idoszakban:
            idoszak.append(nap) #elkezdődik az időszak
            idoszakban = True
    else:
        if idoszakban:
            idoszak.append(napok[napindex-1])
            idoszakok.append(idoszak)
            idoszak = []
            idoszakban = False
for ido in idoszakok:
    print(f'{ido[0][0]}.{ido[0][1]}.{ido[0][2]} - {ido[1][0]}.{ido[1][1]}.{ido[1][2]}')
