예제 #1
0
        public static bool ListTimeSlots(string[] com)
        {
            if (com.Length < 2)
            {
                return(false);
            }
            if (com[0] != "list")
            {
                return(false);
            }
            if (com[1] != "timeslots")
            {
                return(false);
            }
            TimeSlotFile cf = Schedule.timeslots;

            if (com.Length >= 3 && com[2] == "archive")
            {
                cf = Schedule.timeslotsArchive;
            }
            Conzole.PrintLine("Found " + cf.Size() + " timeslots.", ConsoleColor.Magenta);
            for (int i = 0; i < cf.Size(); i++)
            {
                TimeSlot ts = cf.Get(i);
                Conzole.Print(Conzole.PadBefore(ts.startSec + ":" + ts.startMin + ":" + ts.startHou + " >> ", 12), ConsoleColor.Yellow);
                Conzole.Print(Conzole.PadBefore(ts.endSec + ":" + ts.endMin + ":" + ts.endHou, 8), ConsoleColor.Yellow);
                Conzole.Print(" - " + Conzole.PadAfter(ts.name, 50));
                Conzole.Print("\n");
            }
            return(true);
        }
예제 #2
0
        public static bool ListDeadlines(string[] com)
        {
            if (com.Length < 2)
            {
                return(false);
            }
            if (com[0] != "list")
            {
                return(false);
            }
            if (com[1] != "deadlines")
            {
                return(false);
            }
            DeadlineFile df    = Schedule.deadlines;
            DateTime     limit = DateTime.MaxValue;

            if (com.Length >= 3 && com[2] == "archive")
            {
                df = Schedule.deadlinesArchive;
            }
            else if (com.Length >= 3 && com[2] == "past")
            {
                limit = DateTime.Now.AddSeconds(-1);
            }
            else if (com.Length >= 3)
            {
                limit = Logic.Limit(com[2]);
            }
            if (df.Size() == 0)
            {
                Conzole.PrintLine("No deadlines to show!", ConsoleColor.Magenta);
                return(false);
            }
            Conzole.PrintLine("Deadlines: ", ConsoleColor.Magenta);
            List <Deadline> dls = new List <Deadline>();

            for (int i = 0; i < df.Size(); i++)
            {
                Deadline d = df.Get(i);
                if (d.deadline <= limit)
                {
                    dls.Add(d);
                }
            }
            dls.Sort((p, q) => p.SecondsLeft().CompareTo(q.SecondsLeft()));
            for (int i = 0; i < dls.Count; i++)
            {
                Deadline l = dls[i];
                Conzole.Print(Schedule.StrDateTime(l.deadline) + " - ", ConsoleColor.Yellow);
                string msg  = "";
                int    left = l.SecondsLeft();
                int    abs  = Math.Abs(left);
                int    min  = 60;
                int    hour = min * 60;
                int    day  = hour * 24;
                if (abs < min * 5)
                {
                    msg = Conzole.PadBefore(abs + "", 4) + " seconds - ";
                }
                else if (abs < hour)
                {
                    msg = Conzole.PadBefore("" + (abs / min), 4) + " minutes - ";
                }
                else if (abs < day * 2)
                {
                    msg = Conzole.PadBefore("" + (abs / hour), 4) + " hours   - ";
                }
                else
                {
                    msg = Conzole.PadBefore("" + (abs / day), 4) + " days    - ";
                }
                if (left > 0)
                {
                    msg = "Left: " + msg;
                }
                else
                {
                    msg = "Past: " + msg;
                }
                ConsoleColor colour;
                if (left > 0)
                {
                    colour = ConsoleColor.White;
                }
                else
                {
                    colour = ConsoleColor.Red;
                }
                Conzole.Print(msg, colour);
                Conzole.Print(Conzole.PadAfter(l.title, 50) + " - ", ConsoleColor.Green);
                Conzole.Print(Conzole.PadAfter(l.category, 20) + "\n", ConsoleColor.Green);
            }
            return(true);
        }