private void CalculateTime()
        {
            string firstItem  = ((CountryList)lstFirst.SelectedItem).Name;
            string secondItem = ((CountryList)lstSecond.SelectedItem).Name;

            TimeZoneInfo firstTimeZoneInfo            = ((CountryList)lstFirst.SelectedItem).TimeZone;
            DateTime     firstTime                    = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, (((CountryList)lstFirst.SelectedItem).TimeZone));
            bool         IsDayLightTimeAvilable_First = firstTimeZoneInfo.IsDaylightSavingTime(firstTime);

            TimeZoneInfo secondTimeZoneInfo            = ((CountryList)lstSecond.SelectedItem).TimeZone;
            DateTime     secondTime                    = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, (((CountryList)lstSecond.SelectedItem).TimeZone));
            bool         IsDayLightTimeAvilable_Second = secondTimeZoneInfo.IsDaylightSavingTime(secondTime);

            var country1 = CountryTimeZone.countryTimeDiffernceList.Where(m => m.Country == firstItem && m.isDayLightSaving == IsDayLightTimeAvilable_First).FirstOrDefault().UTCTime;
            var country2 = CountryTimeZone.countryTimeDiffernceList.Where(m => m.Country == secondItem && m.isDayLightSaving == IsDayLightTimeAvilable_Second).FirstOrDefault().UTCTime;

            var timeDiffrence = new StringTime(country1).Subtract(new StringTime(country2));


            for (int i = 1; i <= 24; i++)
            {
                if (stkRowIndia.Children.Count > 1)
                {
                    stkRowIndia.Children.Remove(stkRowIndia.Children[1]);
                    stkRowUS.Children.Remove(stkRowUS.Children[1]);
                }
            }

            CreateButtonsforTime(timeDiffrence, firstItem, secondItem);
        }
        /// <summary>
        /// Special method that ensures correct input parameters for specified problem from console arguments
        /// </summary>
        /// <param name="args">Console arguments</param>
        /// <returns>Struct defining input parameters</returns>
        protected override InputData HandleArguments(string[] args)
        {
            string fileName;
            IoType type = GetType(args);

            int index = type == IoType.Program ? 0 : 1;

            if (args.Length <= index)
            {
                ErrorHandler.TerminateExecution(ErrorCode.NoFileGiven);
            }
            if (!TryExtensions(args[index], out fileName))
            {
                ErrorHandler.TerminateExecution(ErrorCode.NoSuchFile, args[index]);
            }

            ExecutionTime time;

            if (args.Length == 1 || index == 1)
            {
                time = ExecutionTime.Unlimited;
            }
            else
            {
                if (!StringTime.Decode(args[1], out time))
                {
                    ErrorHandler.TerminateExecution(ErrorCode.InvalidInputParameter, "Time is not well defined: " + args[1] + ".");
                }
            }
            return(new InputData(fileName, time, index == 0));
        }
Exemple #3
0
        private void SetAbortSignal()
        {
            int timeInMiliseconds = StringTime.Miliseconds(Time);

            if (timeInMiliseconds == 0)
            {
                return;
            }
            Thread.Sleep(timeInMiliseconds);
            _abort = true;
        }
        private static ExecutionTime AskForTime()
        {
            ExecutionTime time;
            var           correctInput = false;

            do
            {
                var result = ConsoleHandler.AskForInput("");
                if (!StringTime.Decode(result, out time))
                {
                    Console.WriteLine("Such time is not valid.");
                    continue;
                }
                correctInput = true;
            } while (!correctInput);
            return(time);
        }
        private void CreateButtonsforTime(TimeSpan timedifference, string firstTimeChart, string secondTimeChart)
        {
            for (int i = 1; i <= 24; i++)
            {
                string time     = i.ToString() + ":00";
                Button btnFirst = new Button();
                btnFirst.Name    = "First_" + i;
                btnFirst.Content = time;
                SetButtonInitalStyle(ref btnFirst);
                btnFirst.MouseEnter += BtnFirst_MouseEnter;
                btnFirst.MouseLeave += BtnFirst_MouseLeave;
                stkRowIndia.Children.Add(btnFirst);
                lblFirstTimeChart.Content = firstTimeChart;

                Button btnSecond = new Button();
                btnSecond.Name = "Second_" + i;
                SetButtonInitalStyle(ref btnSecond);

                TimeSpan timeValue;

                if (new TimeSpan(new StringTime(timedifference.ToString()).Hours, new StringTime(timedifference.ToString()).Minutes, 0) < new TimeSpan(0, 0, 0))
                {
                    timedifference = new StringTime("23:00").Add(new StringTime(timedifference.ToString()));
                }

                if (new StringTime(time).Subtract(new StringTime(timedifference.ToString())) < new TimeSpan(0, 0, 0))
                {
                    timeValue = (new StringTime("23:00").Add(new StringTime((new StringTime(time).Subtract(new StringTime(timedifference.ToString()))).ToString())));
                }
                else
                {
                    timeValue = (new StringTime(time).Subtract(new StringTime(timedifference.ToString())));
                }

                btnSecond.Content = timeValue.ToString(@"hh\:mm");
                stkRowUS.Children.Add(btnSecond);
                lblSecondTimeChart.Content = secondTimeChart;
            }
        }
        public FileHandler(InputData data)
        {
            if (!Directory.Exists(OutputFolder))
            {
                Directory.CreateDirectory(OutputFolder);
            }

            _inputFileName = data.FileName;
            if (!File.Exists(data.FileName))
            {
                ErrorHandler.TerminateExecution(ErrorCode.NoSuchFile, _inputFileName);
            }


            IoHandler.FilenameFormatter(_inputFileName, out var path, out var fileName, out var extension);
            var    newFileName = "res-" + StringTime.ToString(data.Time) + "-" + fileName;
            string root        = Path.GetPathRoot(path);

            path = Path.Combine(root, OutputFolder);
            var outputFileName = IoHandler.FilenameFormatter(path, newFileName, extension);

            _outputFileName = outputFileName;
        }
Exemple #7
0
 public TimeSpan Add(StringTime time2)
 {
     return(this.ToTimeSpan().Add(time2.ToTimeSpan()));
 }