From 133db456a4bd069daecb60b3ec6fa147868493a3 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Tue, 18 Nov 2025 00:27:51 +0100
Subject: Handle GTFS times exceeding 24 hours for night services (#98)

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: arielcostas <94913521+arielcostas@users.noreply.github.com>
Co-authored-by: Ariel Costas Guerrero <ariel@costas.dev>
---
 src/frontend/app/components/SchedulesTable.tsx | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'src/frontend/app/components/SchedulesTable.tsx')

diff --git a/src/frontend/app/components/SchedulesTable.tsx b/src/frontend/app/components/SchedulesTable.tsx
index 60e7ab0..5df01e5 100644
--- a/src/frontend/app/components/SchedulesTable.tsx
+++ b/src/frontend/app/components/SchedulesTable.tsx
@@ -95,6 +95,13 @@ const timeToMinutes = (time: string): number => {
   return hours * 60 + minutes;
 };
 
+// Utility function to format GTFS time for display (handle hours >= 24)
+const formatTimeForDisplay = (time: string): string => {
+  const [hours, minutes] = time.split(":").map(Number);
+  const normalizedHours = hours % 24;
+  return `${normalizedHours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}`;
+};
+
 // Utility function to find nearby entries
 const findNearbyEntries = (
   entries: ScheduledTable[],
@@ -178,7 +185,7 @@ export const SchedulesTable: React.FC<TimetableTableProps> = ({
 
                 <div className="time-info">
                   <span className="departure-time">
-                    {entry.calling_time.slice(0, 5)}
+                    {formatTimeForDisplay(entry.calling_time)}
                   </span>
                 </div>
               </div>
-- 
cgit v1.3

