示例#1
0
        //range(start_date, end_date):
        //for n in range((end_date - start_date).days):
        //  yield start_date + datetime.timedelta(n)
        /// <summary>
        /// This method will draw the ocurrences on a timeline
        /// </summary>
        /// <param name="occ">An IOccurrence instance</param>
        /// <param name="start"></param>
        /// <param name="end"></param>
        public void visualiseOccurrencesInRange(IOccurrence occ, DateTime?start = null, DateTime?end = null)
        {
            if (!end.HasValue)
            {
                end = occ.End;
            }

            if (!start.HasValue)
            {
                start = occ.Start;
            }
            Trace.WriteLine(String.Format(" Range from {0} to {1} ", start, end));

            var now = DateTime.Now.Date;

            Trace.Write("|");

            foreach (var sd in AOccurrence.DateRange(start.Value, end.Value))
            {
                Trace.Write(String.Format("    {0,5:d} |", (sd - now).Days + 1));
            }

            Trace.Write("\n|");
            foreach (var sd in AOccurrence.DateRange(start.Value, end.Value))
            {
                Trace.Write(String.Format("{0:yyyy-MM-dd}|", sd));
            }

            Trace.Write("\n|");
            foreach (var sd in AOccurrence.DateRange(start.Value, end.Value))
            {
                if (sd == occ.GetNext(sd, true))
                {
                    Trace.Write(String.Format("{0:yyyy-MM-dd}|", sd));
                }
                else
                {
                    Trace.Write("          |");
                }
            }
        }