Ejemplo n.º 1
0
            public static SUBTime operator +(SUBTime lt, SUBTime rt)
            {
                SUBTime at = new SUBTime();

                at.Hour    = lt.Hour + rt.Hour;
                at.Minute  = lt.Minute + rt.Minute;
                at.Second  = lt.Second + rt.Second;
                at.SSecond = lt.SSecond + rt.SSecond;

                if (at.SSecond >= 1000)
                {
                    at.Second += at.SSecond / 1000;
                    at.SSecond = at.SSecond % 1000;
                }

                if (at.Second >= 60)
                {
                    at.Minute += at.Second / 60;
                    at.Second  = at.Second % 60;
                }

                if (at.Minute >= 60)
                {
                    at.Hour  += at.Minute / 60;
                    at.Minute = at.Minute % 60;
                }

                return(at);
            }
Ejemplo n.º 2
0
            public static SUBTime operator -(SUBTime lt, SUBTime rt)
            {
                if (lt == rt || lt < rt)
                {
                    return(new SUBTime());
                }

                SUBTime at = new SUBTime();

                at.Hour    = lt.Hour - rt.Hour;
                at.Minute  = lt.Minute - rt.Minute;
                at.Second  = lt.Second - rt.Second;
                at.SSecond = lt.SSecond - rt.SSecond;

                if (at.SSecond < 0)
                {
                    at.SSecond = 1000 - Math.Abs(at.SSecond);
                    at.Second -= 1;
                }

                if (at.Second < 0)
                {
                    at.Second  = 60 - Math.Abs(at.Second);
                    at.Minute -= 1;
                }

                if (at.Minute < 0)
                {
                    at.Minute = 60 - Math.Abs(at.Minute);
                    at.Hour  -= 1;
                }

                return(at);
            }
Ejemplo n.º 3
0
            public static SUBTime Parse(string stime)
            {
                SUBTime at = new SUBTime();
                int     hour, minute, second, ssecond;

                string[] sa = stime.Split(new char[] { '.' }, 2);

                if (sa.Length != 2)
                {
                    return(null);
                }

                string sl = sa[0];
                string sr = sa[1];

                string[] saa = sl.Split(new char[] { ':' }, 3);

                if (saa.Length != 3)
                {
                    return(null);
                }


                int.TryParse(saa[0], out hour);
                int.TryParse(saa[1], out minute);
                int.TryParse(saa[2], out second);
                int.TryParse(sr, out ssecond);
                at.Hour   = hour;
                at.Minute = minute;
                at.Second = second;

                if (sr.Length == 2)
                {
                    ssecond *= 10;
                }

                at.SSecond = ssecond;
                return(at);
            }