Calculate date, based on specified time and unit : Date Time Util « Date Time « C# / C Sharp






Calculate date, based on specified time and unit

      

/**********************************************************
 * Author    : Riwut Libinuko (cakriwut@gmail.com)
 * Blog      : http://blog.libinuko.com
 * Copyright : Riwut Libinuko (c) 2009 - 2010
 * 
 **********************************************************/

using System;
using System.Collections.Generic;
using System.Text;

namespace ScheduleAlertJob
{
    /// <summary>
    /// Utility class to provide simple operations for other components.
    /// </summary>
    public class Utility
    {
        /// <summary>
        /// Calculate date, based on specified time and unit
        /// </summary>
        /// <param name="refDate">Reference date of the event</param>
        /// <param name="reminderTime">Array of reminder time. The value is comming from SPFieldMultiChoice</param>
        /// <returns></returns>
        public static List<DateTime> CalculateDate(DateTime refDate, string[] reminderTime)
        {
            return CalculateDate(refDate, reminderTime, true);
        }
        /// <summary>
        /// Calculate date, based on specified time and unit
        /// </summary>
        /// <param name="refDate">Reference date of the event</param>
        /// <param name="reminderTime">Array of reminder time. The value is comming from SPFieldMultiChoice</param>
        /// <param name="beforeTime">True to calculate time before refDate, false to reverse calculation</param>
        /// <returns></returns>
        public static List<DateTime> CalculateDate(DateTime refDate, string[] reminderTimeCollection, bool beforeTime)
        {
            List<DateTime> resultDates = new List<DateTime>();
            foreach (string remindTime in reminderTimeCollection)
            {
                string[] reminderTime = remindTime.Split(new char[] { '(', ')' });
                string spanTime = reminderTime[0].Trim().Substring(0, reminderTime[0].Trim().Length - 2);
                double spanTimeVal;
                if (double.TryParse(spanTime, out spanTimeVal))
                {
                    if (beforeTime)
                        spanTimeVal = -spanTimeVal;

                    if (reminderTime[0].Trim().EndsWith("mi"))
                    {
                        resultDates.Add(refDate.AddMinutes(spanTimeVal));
                    }
                    else if (reminderTime[0].Trim().EndsWith("hr"))
                    {
                        resultDates.Add(refDate.AddHours(spanTimeVal));
                    }
                    else if (reminderTime[0].Trim().EndsWith("dy"))
                    {
                        resultDates.Add(refDate.AddDays(spanTimeVal));
                    }
                    else if (reminderTime[0].Trim().EndsWith("wk"))
                    {
                        resultDates.Add(refDate.AddDays(((double)7 * spanTimeVal)));
                    }
                    else if (reminderTime[0].Trim().EndsWith("mo"))
                    {
                        resultDates.Add(refDate.AddMonths((int)spanTimeVal));
                    }
                    else if (reminderTime[0].Trim().EndsWith("yr"))
                    {
                        resultDates.Add(refDate.AddYears((int)spanTimeVal));
                    }
                }
            }
            resultDates.Sort();
            return resultDates;

        }
        /// <summary>
        /// Find date greater than TODAY
        /// </summary>
        /// <param name="dateTime">DateTime to compare</param>
        /// <returns></returns>
        public static bool DateGreaterThanToday(DateTime dateTime)
        {
            if (dateTime.CompareTo(DateTime.Now) > 0)
                return true;
            else
                return false;
        }
    }
}

   
    
    
    
    
    
  








Related examples in the same category

1.Gets the days between.
2.Return a unique identifier based on system's full date (yyyymmdd) and time (hhmissms).
3.Return a elapsed time in formatted string. (hh:mm:ss:mi)
4.Screen for holidays
5.Return the previous business date of the date specified.
6.Return the previous or next business day of the date specified.
7.Return true if the number of seconds has elapsed since the last check
8.Add Business Days
9.Get Day Of Week
10.Add week to a DateTime
11.Get the quarter number for the DateTime
12.Get the week number
13.Date and time To Words
14.Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
15.Convert Unix Seconds
16.Get Elapsed Time
17.Is given DateTime Weekend
18.Converts a Date to a string using relative time.
19.Gets the date from Year integer
20.Gets the date from Year and Month integer
21.Gets the date from Year, Month and Day integer
22.Gets the days in month.
23.Gets the days in year.
24.Gets the end of day.
25.Gets the end of week.
26.Gets the start of month.
27.Gets the end of month.
28.Gets the end of quarter.
29.Gets the end of year.
30.Gets the months between.
31.Date Time To String
32.Update text within a file by replacing a substring within the file.
33.Get Date Difference in String
34.Converts the specified date and time strings to their DateTime equivalent representation.
35.Create Expires In String
36.Compares 2 dates ignoring the milliseconds
37.Gets the ordinal suffix for a given date
38.Generate the timestamp of the provided DateTime
39.Converts the date to start from midnight.
40.Converts the date to end at midnight.
41.Convert time from seconds to ticks
42.Generate the UNIX style timestamp for DateTime.UtcNow
43.Parse DateTime from "2011/5/2 14:40"