Example #1
0
        public static bool operator >(MyTime a, MyTime b)      // Если A > B, то True
        {
            MyTime TempA = new MyTime(), TempB = new MyTime(); // на всякий случай делаем отлельное время

            TempA.Days    = a.Days;
            TempA.Hours   = a.Hours;
            TempA.Minutes = a.Minutes;
            TempA.Seconds = a.Seconds;

            TempB.Days    = b.Days;
            TempB.Hours   = b.Hours;
            TempB.Minutes = b.Minutes;
            TempB.Seconds = b.Seconds;

            //Чтобы сравнить MyTime(0d 0,60,0) и MyTime(0d 1,0,0) приведём оба времени "к общему знаменателю"
            //Переведём всё в секунды и сравним
            TempA = TempA.ConvertTo_Ss();
            TempB = TempB.ConvertTo_Ss();

            if ((TempA.Seconds) > (TempB.Seconds)) //Сравниваем секунды
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Example #2
0
        private void lblT1_D_Click(object sender, EventArgs e)
        {
            int i = 1;

            MyTime[] t = new MyTime[5];
            t[0] = new MyTime();
            t[0].Reset();
        }
Example #3
0
        public override bool Equals(object obj)
        {
            if (obj.GetType() != GetType())
            {
                return(false);
            }
            MyTime t = (MyTime)obj;

            return(Days == t.Days && Hours == t.Hours && Minutes == t.Minutes && Seconds == t.Seconds);
        }
Example #4
0
 // Для уменьшения кода выделили повторяющийся код в метод
 public void Results(MyTime t, TextBox tbx)
 {
     tbx.Text += t.ToString() + " = (Д) " +
                 t.ConvertTo_Ds().ToString() + " = (Ч) " +
                 t.ConvertTo_Hs().ToString() + " = (М) " +
                 t.ConvertTo_Ms().ToString() + " = (С) " +
                 t.ConvertTo_Ss().ToString()
                 + '\r' + '\n'
                 + '\r' + '\n';
 }
Example #5
0
        public static MyTime operator -(MyTime t1, MyTime t2) //Разница между двумя временами
        {
            MyTime xt1 = t1.ConvertTo_Ss();                   //конвертируем 2 времени в секунды
            MyTime xt2 = t2.ConvertTo_Ss();
            MyTime xt3 = new MyTime();

            xt3.Ss = Math.Abs(xt1.Ss - xt2.Ss); //вычетаем секунды по модулю
            xt3.ConvertTo_Ds();                 //конвертируем обратнов дни

            return(xt3);
        }
Example #6
0
        public static MyTime operator +(MyTime t1, MyTime t2)  //Сложить два время
        {
            MyTime t3 = new MyTime
            {
                Ds = (t1.Ds + t2.Ds),
                Hs = (t1.Hs + t2.Hs),
                Ms = (t1.Ms + t2.Ms),
                Ss = (t1.Ss + t2.Ss)
            };

            return(t3);
        }
Example #7
0
        public MyTime ConvertTo_Ms() // конвертируем всё время в Минуты ( и "остаток" пишем в секунды)
        {
            MyTime xt = new MyTime();

            xt.Ds = Ds;
            xt.Hs = Hs;
            xt.Ms = Ms;
            xt.Ss = Ss;
            xt    = xt.ConvertTo_Ss();                // конвертируем всё время в Секунды

            xt.Ms = xt.Ss / 60;                       // переводим секунды в минуты
            xt.Ss = 0 + Math.Abs(xt.Ms * 60 - xt.Ss); // В секунды пишем остаток

            return(xt);
        }
Example #8
0
        public MyTime ConvertTo_Ds() // конвертируем всё время в Дни (и раскидываем "остаток" на часы, минуты и секунды)
        {                            //Также этот метод полностью "нормализует" время
            MyTime xt = new MyTime();

            xt.Ds = Ds;
            xt.Hs = Hs;
            xt.Ms = Ms;
            xt.Ss = Ss;
            xt    = xt.ConvertTo_Hs();                // конвертируем всё время в Часы (и раскидываем "остаток" на минуты и секунды)

            xt.Ds = xt.Hs / 24;                       // получаем колличество дней
            xt.Hs = 0 + Math.Abs(xt.Ds * 24 - xt.Hs); // В часы пишем остаток

            return(xt);
        }
Example #9
0
        public MyTime ConvertTo_Hs() // конвертируем всё время в Часы (и раскидываем "остаток" на минуты и секунды)
        {
            MyTime xt = new MyTime();

            xt.Ds = Ds;
            xt.Hs = Hs;
            xt.Ms = Ms;
            xt.Ss = Ss;
            xt    = xt.ConvertTo_Ss();                // конвертируем всё время в Секунды

            xt.Ms = xt.Ss / 60;                       // получаем минуты
            xt.Ss = 0 + Math.Abs(xt.Ms * 60 - xt.Ss); // В секунды пишем остаток

            xt.Hs = xt.Ms / 60;                       // получаем часы
            xt.Ms = 0 + Math.Abs(xt.Hs * 60 - xt.Ms); // В минуты пишем остаток

            return(xt);
        }
Example #10
0
        public MyTime ConvertTo_Ss()  // конвертируем всё время в Секунды
        {
            MyTime xt = new MyTime(); // на всякий случай делаем отлельное время

            xt.Ds = Ds;
            xt.Hs = Hs;
            xt.Ms = Ms;
            xt.Ss = Ss;

            xt.Hs = (xt.Ds * 24) + xt.Hs; // переводим дни в часы
            xt.Ds = 0;                    // и обнуляем дни

            xt.Ms = (xt.Hs * 60) + xt.Ms; // переводим часы в минуты
            xt.Hs = 0;                    // и обнуляем часы

            xt.Ss = (xt.Ms * 60) + xt.Ss; // переводим минуты в секунды
            xt.Ms = 0;                    // и обнуляем минуты

            return(xt);
        }
Example #11
0
        private void buttonRes_Click(object sender, EventArgs e)
        {
            /*
             * Тестировала значения для unit-тестов
             *
             * MyTime testtime1 = new MyTime(0,1,0,0);
             * MyTime testtime2 = new MyTime(0, 0, 60, 0);
             * bool ok;
             * if (testtime1 != testtime2) ok = true;
             * else ok = false;
             *
             * MyTime s1 = new MyTime(1, 23, 59, 59);
             * MyTime s2 = new MyTime(0, 0, 0, 6);
             * MyTime s3 = s1 + s2;
             */

            try // чтобы не вылетало
            {
                //берём значения из текстбоксов и переводим их из STRING в INT
                MyTime time1 = new MyTime(Int32.Parse(tBxT1_Ds.Text),
                                          Int32.Parse(tBxT1_Hs.Text),
                                          Int32.Parse(tBxT1_Ms.Text),
                                          Int32.Parse(tBxT1_Ss.Text));

                MyTime time2 = new MyTime(Int32.Parse(tBxT2_Ds.Text),
                                          Int32.Parse(tBxT2_Hs.Text),
                                          Int32.Parse(tBxT2_Ms.Text),
                                          Int32.Parse(tBxT2_Ss.Text));

                MyTime time3 = new MyTime();

                if (cmbBxOperator.Text == "+")
                {
                    time3 = (time1 + time2);

                    textBoxRes.Text += "Первое время:" + '\r' + '\n';
                    Results(time1, textBoxRes);

                    textBoxRes.Text += "Второе время:" + '\r' + '\n';
                    Results(time2, textBoxRes);

                    textBoxRes.Text += "Третье время (их сумма):" + '\r' + '\n';
                    Results(time3, textBoxRes);
                    textBoxRes.Text += "----------------------- " + '\r' + '\n';
                }

                else

                if (cmbBxOperator.Text == "-")
                {
                    time3 = (time1 - time2);

                    textBoxRes.Text += "Первое время:" + '\r' + '\n';
                    Results(time1, textBoxRes);

                    textBoxRes.Text += "Второе время:" + '\r' + '\n';
                    Results(time2, textBoxRes);

                    textBoxRes.Text += "Третье время (их разница):" + '\r' + '\n';
                    Results(time3, textBoxRes);
                    textBoxRes.Text += "----------------------- " + '\r' + '\n';
                }

                else

                if (cmbBxOperator.Text == ">")
                {
                    textBoxRes.Text += "Первое время:" + '\r' + '\n';
                    Results(time1, textBoxRes);

                    textBoxRes.Text += "Второе время:" + '\r' + '\n';
                    Results(time2, textBoxRes);

                    textBoxRes.Text += " " + '\r' + '\n';

                    if (time1 > time2)
                    {
                        textBoxRes.Text += time1.ToString() + " > " + time2.ToString() + " is True" + '\r' + '\n';
                    }
                    else
                    {
                        textBoxRes.Text += time1.ToString() + " > " + time2.ToString() + " is False" + '\r' + '\n';
                    }
                }

                else

                if (cmbBxOperator.Text == "<")
                {
                    textBoxRes.Text += "Первое время:" + '\r' + '\n';
                    Results(time1, textBoxRes);

                    textBoxRes.Text += "Второе время:" + '\r' + '\n';
                    Results(time2, textBoxRes);

                    textBoxRes.Text += " " + '\r' + '\n';

                    if (time1 < time2)
                    {
                        textBoxRes.Text += time1.ToString() + " < " + time2.ToString() + " is True" + '\r' + '\n';
                    }
                    else
                    {
                        textBoxRes.Text += time1.ToString() + " < " + time2.ToString() + " is False" + '\r' + '\n';
                    }
                }

                else

                if (cmbBxOperator.Text == "=")
                {
                    textBoxRes.Text += "Первое время:" + '\r' + '\n';
                    Results(time1, textBoxRes);

                    textBoxRes.Text += "Второе время:" + '\r' + '\n';
                    Results(time2, textBoxRes);

                    textBoxRes.Text += " " + '\r' + '\n';

                    if (time1 == time2)
                    {
                        textBoxRes.Text += time1.ToString() + " = " + time2.ToString() + " is True" + '\r' + '\n';
                    }
                    else
                    {
                        textBoxRes.Text += time1.ToString() + " = " + time2.ToString() + " is False" + '\r' + '\n';
                    }
                }
            }   // если ошибка, то в текстбокс напишется сообщение об ошибке
            catch (Exception ex)
            {
                textBoxRes.Text += ex.Message + '\r' + '\n' + '\r' + '\n';
            }
        }