예제 #1
0
        private static void StopTimeTest(IGTFSDataSource source)
        {
            IGTFSFeed feed      = new LenientGTFSFeed(source);
            var       stopTimes = feed.StopTimes;

            var tripsByRouteService = feed.Trips.GroupBy(tp => (tp.RouteID, tp.ServiceID));
            var timesByTrip         = stopTimes.GroupBy(stm => stm.TripID).ToDictionary(stm => stm.Key, stm => new { start = stm.Min(x => x.DepartureTime), end = stm.Max(x => x.ArrivalTime) });

            DurationPattern ptn = DurationPattern.CreateWithInvariantCulture("H:mm:ss");

            foreach (var group in tripsByRouteService)
            {
                var rt  = feed.Routes[group.Key.RouteID];
                var cal = feed.Calendars[group.Key.ServiceID].Item1;

                string header = $"{rt.Type} {rt.ShortName} {rt.LongName} - {DayMasks.Get(cal.Mask)}";

                Duration min = Duration.MaxValue;
                Duration max = Duration.MinValue;

                foreach (var trip in group)
                {
                    var times = timesByTrip[trip.ID];
                    min = Duration.Min(times.start.Value, min);
                    max = Duration.Max(times.end.Value, max);
                }

                string timeStr = $"{ptn.Format(min)} - {ptn.Format(max)}";

                Console.WriteLine($"{header}: {timeStr}");
            }
        }
예제 #2
0
    static void Main()
    {
        Duration duration = Duration.FromMinutes(6000);
        var      pattern  = DurationPattern.CreateWithInvariantCulture("H:mm");
        string   text     = pattern.Format(duration);

        Console.WriteLine(text);     // 0:31
    }
예제 #3
0
        public DynamicLinqTests()
        {
            var pattern = DurationPattern.CreateWithInvariantCulture("-H:mm:ss.FFFFFFFFF");

            entities = new List <Entity>()
            {
                new() { Id = Guid.NewGuid(), FirstName = "Paul", BirthDate = new LocalDate(1987, 10, 12), BirthDateNullable = new LocalDate(1987, 10, 12), StayLength = pattern.Parse("9:30:00").Value, EmployedAt = DateTime.Now },
                new() { Id = Guid.NewGuid(), FirstName = "Abigail", BirthDate = new LocalDate(1970, 02, 13), StayLength = pattern.Parse("12:00:00").Value },
                new() { Id = Guid.NewGuid(), FirstName = "Sophia", BirthDate = new LocalDate(1983, 05, 01), StayLength = pattern.Parse("10:30:00").Value }
            }.AsQueryable();
    static void Main()
    {
        string input = "13:12:34";

        DurationPattern pattern =
            DurationPattern.CreateWithInvariantCulture("H:mm:ss");
        // TODO: Consider error handling. The ParseResult<T> returned by
        // pattern.Parse helps with that.
        Duration duration = pattern.Parse(input).Value;
        TimeSpan timeSpan = duration.ToTimeSpan();

        Console.WriteLine(timeSpan);
    }
 static void Main(string[] args)
 {
     DurationPattern pattern  = DurationPattern.CreateWithInvariantCulture("+hhmm");
     TimeSpan        timeSpan = pattern.Parse("+0100").Value.ToTimeSpan();
 }