static void Main(string[] args)
        {
            ClockSimulator sim = new ClockSimulator(100, 60);

            sim.StartClock();
            Controller controller = new Controller();

            ObjectBuilder.BuildAll();

            controller.OperateTrain(ObjectBuilder.Trains[1]);
            controller.OperateTrain(ObjectBuilder.Trains[2]);
        }
        public void Start(Train train, List <TimeTable> timeTable, ClockSimulator clockSim)
        {
            timeTable = timeTable.Where(x => x.TrainID == train.ID).ToList();

            while (timeTable.Any())
            {
                if (!train.IsRunning() && timeTable[0].DepartureTime.TimeOfDay <= clockSim.GetDateTime().TimeOfDay)
                {
                    train.StartTrain();
                    Console.WriteLine($"Log {clockSim.TimeToString()} : {train.Name} : departing from {ObjectBuilder.Stations.Find(s => s.ID == timeTable[0].DepStationID).Name} station");
                }
                if (train.IsRunning() && timeTable[0].ArrivalTime.TimeOfDay <= clockSim.GetDateTime().TimeOfDay)
                {
                    train.StopTrain();
                    Console.WriteLine($"Log {clockSim.TimeToString()} : {train.Name} : arriving at {ObjectBuilder.Stations.Find(s => s.ID == timeTable[0].ArrStationID).Name} station");
                    timeTable.Remove(timeTable[0]);
                }
            }
        }