Skip to content
Snippets Groups Projects

Brukerhistorie d

Merged Sander Skogh Linnerud requested to merge BrukerhistorieD into main
1 file
+ 88
0
Compare changes
  • Side-by-side
  • Inline
+ 88
0
import sqlite3
from datetime import datetime, timedelta
con = sqlite3.connect('db1.db')
cursor = con.cursor()
def ruter(startstasjon, sluttstasjon, ukedag, klokkeslett, nesteUkedag):
cursor.execute('''
SELECT DISTINCT T.Startstasjon, T.Avgangsstid, T.Sluttstasjon, T.Ankomsstid, TT.Ukedag, T.TogruteID, T.VognoppsettID
FROM Togrute T INNER JOIN GaarInnom G ON G.TogruteID = T.TogruteID INNER JOIN TogruteTabell TT ON TT.TogruteID = G.TogruteID
WHERE (T.Startstasjon = ?) AND (G.StasjonsNavn = ? OR T.Sluttstasjon = ?) AND TT.Ukedag = ? AND T.Avgangsstid > ?
UNION
SELECT distinct g1.StasjonsNavn AS Startstasjon, g1.Avgangstid, g2.StasjonsNavn AS Sluttstasjon, g2.Ankomsttid, TT.Ukedag, g1.TogruteID, T.VognoppsettID
FROM GaarInnom AS g1 INNER JOIN GaarInnom AS g2 ON (g1.Avgangstid < g2.Ankomsttid) INNER JOIN TogruteTabell TT ON TT.TogruteID = g1.TogruteID INNER JOIN Togrute T ON T.TogruteID = g1.TogruteID
WHERE g1.TogruteID = g2.TogruteID AND (g1.StasjonsNavn = ? AND g2.StasjonsNavn = ?) AND (TT.Ukedag = ?) AND g1.Avgangstid > ?
UNION
SELECT distinct G.StasjonsNavn AS Startstasjon, G.Avgangstid, T1.Sluttstasjon as Sluttstasjon, T1.Ankomsstid, TT.Ukedag, T1.TogruteID, T1.VognoppsettID
FROM Togrute T1 INNER JOIN GaarInnom G ON T1.TogruteID = G.TogruteID INNER JOIN TogruteTabell TT ON TT.TogruteID = T1.TogruteID
WHERE T1.Sluttstasjon = ? AND G.StasjonsNavn = ? AND TT.Ukedag = ? AND G.Avgangstid > ?
UNION
SELECT DISTINCT T.Startstasjon, T.Avgangsstid, T.Sluttstasjon, T.Ankomsstid, TT.Ukedag, T.TogruteID, T.VognoppsettID
FROM Togrute T INNER JOIN GaarInnom G ON G.TogruteID = T.TogruteID INNER JOIN TogruteTabell TT ON TT.TogruteID = G.TogruteID
WHERE (T.Startstasjon = ?) AND (G.StasjonsNavn = ? OR T.Sluttstasjon = ?) AND TT.Ukedag = ?
UNION
SELECT distinct g1.StasjonsNavn AS Startstasjon, g1.Avgangstid, g2.StasjonsNavn AS Sluttstasjon, g2.Ankomsttid, TT.Ukedag, g1.TogruteID, T.VognoppsettID
FROM GaarInnom AS g1 INNER JOIN GaarInnom AS g2 ON (g1.Avgangstid < g2.Ankomsttid) INNER JOIN TogruteTabell TT ON TT.TogruteID = g1.TogruteID INNER JOIN Togrute T ON T.TogruteID = g1.TogruteID
WHERE g1.TogruteID = g2.TogruteID AND (g1.StasjonsNavn = ? AND g2.StasjonsNavn = ?) AND (TT.Ukedag = ?)
UNION
SELECT distinct G.StasjonsNavn AS Startstasjon, G.Avgangstid, T1.Sluttstasjon as Sluttstasjon, T1.Ankomsstid, TT.Ukedag, T1.TogruteID, T1.VognoppsettID
FROM Togrute T1 INNER JOIN GaarInnom G ON T1.TogruteID = G.TogruteID INNER JOIN TogruteTabell TT ON TT.TogruteID = T1.TogruteID
WHERE T1.Sluttstasjon = ? AND G.StasjonsNavn = ? AND TT.Ukedag = ?
''', (startstasjon, sluttstasjon, sluttstasjon, ukedag, klokkeslett, startstasjon, sluttstasjon, ukedag, klokkeslett, sluttstasjon, startstasjon, ukedag, klokkeslett, startstasjon, sluttstasjon, sluttstasjon, nesteUkedag, startstasjon, sluttstasjon, nesteUkedag, sluttstasjon, startstasjon, nesteUkedag,))
rows = cursor.fetchall()
return rows
def sort_key(record):
day_map = {'Mandag': 1, 'Tirsdag': 2, 'Onsdag': 3, 'Torsdag': 4, 'Fredag': 5, 'Lørdag': 6, 'Søndag': 7}
return (day_map[record[4]], record[1])
def run():
startstasjon = input("Startstasjon: ")
sluttstasjon = input("Sluttstasjon: ")
dato = input("Dato (YYYY-MM-DD): ")
klokkeslett = input("Klokkeslett (HH:MM): ")
weekday = datetime.strptime(dato, "%Y-%m-%d").strftime("%A")
ukedag = {
"Monday": "Mandag",
"Tuesday": "Tirsdag",
"Wednesday": "Onsdag",
"Thursday": "Torsdag",
"Friday": "Fredag",
"Saturday": "Lørdag",
"Sunday": "Søndag"
}[weekday]
next_weekday = (datetime.strptime(dato, "%Y-%m-%d") + timedelta(days=1)).strftime("%A")
nesteUkedag = {
"Monday": "Mandag",
"Tuesday": "Tirsdag",
"Wednesday": "Onsdag",
"Thursday": "Torsdag",
"Friday": "Fredag",
"Saturday": "Lørdag",
"Sunday": "Søndag"
}[next_weekday]
muligeRuter = ruter(startstasjon, sluttstasjon, ukedag, klokkeslett, nesteUkedag)
sorted_data = sorted(muligeRuter, key=sort_key)
for rute in sorted_data:
print("\nRUTE: ")
print("Startstasjon: " + rute[0])
print("Avgangstid: " + rute[1])
print("Sluttstasjon: " + rute[2])
print("Ankomsttid: " + rute[3])
print("Ukedag: " + rute[4])
print("Rutenummer: " + str(rute[5]))
run()
con.close()
Loading