Řidič: %s
`, entry.Name) - fmt.Fprintf(&htmlContent, `Kam: %s
`, entry.Destination) - fmt.Fprintf(&htmlContent, `Datum: %s
`, entry.Date) - fmt.Fprintf(&htmlContent, `Účel jízdy: %s
`, entry.Purpose) - fmt.Fprintf(&htmlContent, `Kilometry na začátku: %d km
`, entry.KmStart) - fmt.Fprintf(&htmlContent, `Kilometry na konci: %d km
`, entry.KmEnd) - fmt.Fprintf(&htmlContent, `Ujeté kilometry: %d km
`, entry.KmEnd-entry.KmStart) + // Formátování dat a časů pro zobrazení + formattedDateStart := "" + if parsedDateStart.IsZero() == false { + monthNameStart := czechMonths[parsedDateStart.Month()-1] + formattedDateStart = fmt.Sprintf("%d. %s %d", parsedDateStart.Day(), monthNameStart, parsedDateStart.Year()) + } else { + formattedDateStart = entry.DateStart + } + + formattedDateEnd := "" + if !parsedDateEnd.IsZero() { + monthNameEnd := czechMonths[parsedDateEnd.Month()-1] + formattedDateEnd = fmt.Sprintf("%d. %s %d", parsedDateEnd.Day(), monthNameEnd, parsedDateEnd.Year()) + } else { + formattedDateEnd = entry.DateEnd + } + + // Výpočet celkové doby jízdy + startDateTime, startErr := time.Parse("2006-01-02T15:04", fmt.Sprintf("%sT%s", entry.DateStart, entry.TimeStart)) + endDateTime, endErr := time.Parse("2006-01-02T15:04", fmt.Sprintf("%sT%s", entry.DateEnd, entry.TimeEnd)) + + totalDurationStr := "Neznámá" + if startErr == nil && endErr == nil { + diffMs := endDateTime.Sub(startDateTime) + if diffMs >= 0 { + diffDays := int(diffMs.Hours() / 24) + diffHours := int(diffMs.Hours()) % 24 + diffMinutes := int(diffMs.Minutes()) % 60 + + if diffDays > 0 { + dayWord := "dní" + if diffDays == 1 { + dayWord = "den" + } else if diffDays >= 2 && diffDays <= 4 { + dayWord = "dny" + } + totalDurationStr = fmt.Sprintf("%d %s, %d h %d min", diffDays, dayWord, diffHours, diffMinutes) + } else { + totalDurationStr = fmt.Sprintf("%d h %d min", diffHours, diffMinutes) + } + } + } + + // Vypsání informací o řidiči a vozidle + htmlContent.WriteString(`
+
`)
+
+ // Vypsání informací o trase
+ htmlContent.WriteString(`Informace o řidiči a vozidle
+
+
+
+ Řidič
+ ` + entry.Name + `
+
+
+ Vozidlo
+ ` + entry.Vehicle + `
+
+
+
`)
+
+ // Vypsání informací o času
+ htmlContent.WriteString(`Informace o trase
+
+
+
+ Cíl cesty
+ ` + entry.Destination + `
+
+
+ Účel jízdy
+ ` + entry.Purpose + `
+
+
+
`)
+
+ // Vypsání informací o kilometrech
+ htmlContent.WriteString(`Časové údaje
+
+
+
+ Datum a čas odjezdu
+ ` + formattedDateStart + `, ` + entry.TimeStart + `
+
+
+ Datum a čas příjezdu
+ ` + formattedDateEnd + `, ` + entry.TimeEnd + `
+
+
+ Celková doba jízdy
+ ` + totalDurationStr + `
+
+
+
`)
if entry.Coordinates != nil {
- fmt.Fprintf(&htmlContent, `Stav tachometru
+
+
+
+ Stav na začátku
+ ` + fmt.Sprintf("%d km", entry.KmStart) + `
+
+
+ Stav na konci
+ ` + fmt.Sprintf("%d km", entry.KmEnd) + `
+
+
+ Celkem ujeto
+ ` + fmt.Sprintf("%d km", entry.KmEnd-entry.KmStart) + `
+
+ GPS souřadnice: %s, %s
`, entry.Coordinates.Lat, entry.Coordinates.Lng) - fmt.Fprintf(&htmlContent, ``, entry.Coordinates.Lng, entry.Coordinates.Lat) + htmlContent.WriteString(`
+
`)
}
htmlContent.WriteString(`
+ GPS Souřadnice
+
+
+
+ Zobrazit na mapě
+
+
+ Souřadnice
+ ` + entry.Coordinates.Lat + `, ` + entry.Coordinates.Lng + `
+
+