Пример #1
0
        public static string GetCurrentTime(string[] exactPostTime, string[] showPostTime)
        {
            int n = exactPostTime.Length;

            int[,] startTime = new int[n, 3];
            int[,] endTime   = new int[n, 3];

            /* startTimes and EndTimes are used for maintaining every interval
             * index 0 for hours
             * index 1 for minutes
             * index 2 for seconds
             */
            int hours = 0, minutes = 0, seconds = 0, temp = 0;

            for (int i = 0; i < n; i++)
            {
                string[] exactTime = exactPostTime[i].Split(":");
                Int32.TryParse(exactTime[0], out hours);
                Int32.TryParse(exactTime[1], out minutes);
                Int32.TryParse(exactTime[2], out seconds);
                var      timeInterval = new TimeInterval(hours, minutes, seconds);
                string[] showTime     = showPostTime[i].Split(" ");
                if (showTime[1].Equals(SECONDSAGO))
                {
                    timeInterval.CalculateStartTime(0, 0, 0);
                    timeInterval.CalculateEndTime(0, 0, 59);
                }
                else if (showTime[1].Equals(MINUTESAGO))
                {
                    Int32.TryParse(showTime[0], out temp);
                    timeInterval.CalculateStartTime(0, temp, 0);
                    timeInterval.CalculateEndTime(0, 0, 59);
                }
                else if (showTime[1].Equals(HOURSAGO))
                {
                    Int32.TryParse(showTime[0], out temp);
                    timeInterval.CalculateStartTime(temp, 0, 0);
                    timeInterval.CalculateEndTime(0, 59, 59);
                }
                timeInterval.UpdateTimeInterval(startTime, endTime, i);
            }
            int[] result = new int[2];
            if (FindIntersection(startTime, endTime, result, n))
            {
                return(GettingStringFormat(result));
            }
            else
            {
                return("impossible");
            }
        }