Advertisement
Venciity

EventsInGivenDateRange

Aug 15th, 2015
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.77 KB | None | 0 0
  1. namespace EventsInGivenDateRange
  2. {
  3.     using System;
  4.     using System.Globalization;
  5.     using System.Threading;
  6.     using Wintellect.PowerCollections;
  7.  
  8.     public class Program
  9.     {
  10.         public static void Main()
  11.         {
  12.             Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
  13.  
  14.             var events = new OrderedMultiDictionary<DateTime, string>(true);
  15.             int n = int.Parse(Console.ReadLine());
  16.             for (int i = 0; i < n; i++)
  17.             {
  18.                 string eventEntry = Console.ReadLine();
  19.                 var eventTokens = eventEntry.Split('|');
  20.                 string eventName = eventTokens[0].Trim();
  21.                 DateTime eventDate = DateTime.Parse(eventTokens[1].Trim());
  22.                 events.Add(eventDate, eventName);
  23.             }
  24.  
  25.             int numberOfRanges = int.Parse(Console.ReadLine());
  26.             for (int i = 0; i < numberOfRanges; i++)
  27.             {
  28.                 string datesAsString = Console.ReadLine();
  29.                 var datesTokens = datesAsString.Split('|');
  30.                 DateTime startDate = DateTime.Parse(datesTokens[0].Trim());
  31.                 DateTime endDate = DateTime.Parse(datesTokens[1].Trim());
  32.                 var eventsInRange = events.Range(startDate, true, endDate, true);
  33.  
  34.                 Console.WriteLine(new string('-', 70));
  35.                 Console.WriteLine("Events count between {0} and {1}: {2}", startDate, endDate, eventsInRange.KeyValuePairs.Count);
  36.                 foreach (var pair in eventsInRange)
  37.                 {
  38.                     foreach (var date in pair.Value)
  39.                     {
  40.                         Console.WriteLine("{0} | {1}", date, pair.Key);
  41.                     }
  42.                 }
  43.             }
  44.         }
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement