feat:#31 updated database start end to date

This commit is contained in:
masterelmar
2023-10-28 11:10:06 +02:00
parent d10343fe89
commit 7228d17d84
7 changed files with 667 additions and 33 deletions

View File

@@ -129,22 +129,21 @@ func convertWeeksToDates(events []model.Event, semester string, year string) []m
start := addTimeToDate(eventDay, event.Start)
end := addTimeToDate(eventDay, event.End)
newEvent := event
newEvent.Start = start.String()
newEvent.End = end.String()
newEvent.Start = start
newEvent.End = end
newEvent.Semester = semester
newEvents = append(newEvents, newEvent)
}
return newEvents
}
func addTimeToDate(date time.Time, timeString string) time.Time {
europeTime, _ := time.LoadLocation("Europe/Berlin")
//convert time functions to time
timeParts := strings.Split(timeString, ":")
hour, _ := strconv.Atoi(timeParts[0])
minute, _ := strconv.Atoi(timeParts[1])
return time.Date(date.Year(), date.Month(), date.Day(), hour, minute, 0, 0, europeTime)
// addTimeToDate adds each value onto date
func addTimeToDate(date time.Time, addDate time.Time) time.Time {
newDate := date
newDate = newDate.Add(time.Second * time.Duration(addDate.Second()))
newDate = newDate.Add(time.Hour * time.Duration(addDate.Hour()))
newDate = newDate.Add(time.Minute * time.Duration(addDate.Minute()))
return newDate
}
func extractSemesterAndYear(semesterString string) (string, string) {
@@ -191,8 +190,8 @@ func toEvents(tables [][]*html.Node, days []string) []model.Event {
events = append(events, model.Event{
Day: days[table],
Week: getTextContent(tableData[0]),
Start: getTextContent(tableData[1]),
End: getTextContent(tableData[2]),
Start: createTimeFromHourAndMinuteString(getTextContent(tableData[1])),
End: createTimeFromHourAndMinuteString(getTextContent(tableData[2])),
Name: getTextContent(tableData[3]),
EventType: getTextContent(tableData[4]),
Prof: getTextContent(tableData[5]),
@@ -208,6 +207,17 @@ func toEvents(tables [][]*html.Node, days []string) []model.Event {
return events
}
// createEventFromTableData should create an event from the table data
// tableTime represents Hour and Minute like HH:MM
// tableDate returns a Time
func createTimeFromHourAndMinuteString(tableTime string) time.Time {
europeTime, _ := time.LoadLocation("Europe/Berlin")
timeParts := strings.Split(tableTime, ":")
hour, _ := strconv.Atoi(timeParts[0])
minute, _ := strconv.Atoi(timeParts[1])
return time.Date(0, 0, 0, hour, minute, 0, 0, europeTime)
}
func splitEventsByWeek(events []model.Event) []model.Event {
var newEvents []model.Event