public TimeRequired(int h, int m, int s)
        {
            if (!FormatTimeUtility.ValidateHour(h))
            {
                throw new TimeSettingsOutRangeException("Hour");
            }
            if (!FormatTimeUtility.ValidateMinute(m))
            {
                throw new TimeSettingsOutRangeException("Minute");
            }
            if (!FormatTimeUtility.ValidateSecond(s))
            {
                throw new TimeSettingsOutRangeException("Second");
            }
            Hour   = h;
            Minute = m;
            Second = s;

            _DateTimeFormat = BuildDateTimeFormat();
            if (h == 0)
            {
                _FractionFormat = FormatTimeUtility.ConvertDateTimeToFractionMinutes(_DateTimeFormat);
            }
            else
            {
                _FractionFormat = FormatTimeUtility.ConvertDateTimeToFractionHours(_DateTimeFormat);
            }
        }
        public double GetPomodoroRequired(TimeRequired timeRequired)
        {
            int    totalMinutes       = FormatTimeUtility.ConvertFractionHoursToMinutes(timeRequired.GetFractionFormat());
            double pomodoroInFraction = FormatTimeUtility.DecimalDivisionRound(totalMinutes, PomodoroSettings.PomodoroDuration);

            return(pomodoroInFraction);
        }
 public double GetFractionFormat()
 {
     if (_fractionFormat == -1)
     {
         _fractionFormat = FormatTimeUtility.ConvertDateTimeToFractionMinutes(new DateTime(1, 1, 1, Hour, Minute, Second));
     }
     return(_fractionFormat);
 }
        public void ConvertDateTimeToFractionMinutes()
        {
            // arragment

            // act
            var result = FormatTimeUtility.ConvertDateTimeToFractionMinutes(DateTime.Parse("0:2:30"));

            // assert
            Assert.IsTrue(result == 2.5);
        }
        public void DecimalDivisionRound_Expect_Zero()
        {
            // arragment

            // act
            var result = FormatTimeUtility.DecimalDivisionRound(2.5, 3);

            // assert
            Assert.IsTrue(result == 0);
        }
        public void DecimalDivisionRound_Expect_Bigger_than_Zero()
        {
            // arragment

            // act
            var result = FormatTimeUtility.DecimalDivisionRound(8, 3);

            // assert
            Assert.IsTrue(result == 2.7);
        }
        public void ConvertFractionHoursToMinutes()
        {
            // arragment

            // act
            var resultInMinutes = FormatTimeUtility.ConvertFractionHoursToMinutes(1.25);

            // assert
            Assert.IsTrue(resultInMinutes == 75);
        }
        public void ConvertDateTimeToFractionHours()
        {
            // arragment

            // act
            var result = FormatTimeUtility.ConvertDateTimeToFractionHours(DateTime.Parse("1:15:00"));

            // assert
            Assert.IsTrue(result == 1.2);
        }
        public TimeFormat(int h, int m, int s)
        {
            Hour   = h;
            Minute = m;
            Second = s;

            _dateTimeFormat = BuildDateTimeFormat();
            if (h == 0)
            {
                _fractionFormat = FormatTimeUtility.ConvertDateTimeToFractionMinutes(_dateTimeFormat);
            }
            else
            {
                _fractionFormat = FormatTimeUtility.ConvertDateTimeToFractionHours(_dateTimeFormat);
            }
        }
        public double GetSessionRequired(double qtyOfRequiredPomodoros)
        {
            double sessionInFraction = FormatTimeUtility.DecimalDivisionRound(qtyOfRequiredPomodoros, (double)PomodoroSettings.NumberPomodoroPerSession);

            return(sessionInFraction);
        }