示例#1
0
        /// <summary>
        /// Regular.Match Group 2 DateTime
        /// </summary>
        /// <param name="m">Regular.Match</param>
        /// <param name="format">ISO8601DateFormats</param>
        /// <returns>return DateTime</returns>
        internal static DateTime Match2DateTime(Match m, ISO8601DateFormats format)
        {
            DateTime datetime = default(DateTime);

            switch (format)
            {
            case ISO8601DateFormats.BasicCalendarDate:
            case ISO8601DateFormats.ExtendedCalendarDate:
                datetime = new DateTime(Convert.ToInt32(m.Groups["year"].Value), Convert.ToInt32(m.Groups["month"].Value), Convert.ToInt32(m.Groups["day"].Value));
                break;

            case ISO8601DateFormats.BasicOrdinalDate:
            case ISO8601DateFormats.ExtendedOrdinalDate:
                datetime = new DateTime(Convert.ToInt32(m.Groups["year"].Value), 1, 1);
                datetime = datetime.AddDays(Convert.ToInt32(m.Groups["dayofyear"].Value) - 1);
                break;

            case ISO8601DateFormats.BasicWeekDate:
            case ISO8601DateFormats.ExtendedWeekDate:
                datetime = new DateTime(Convert.ToInt32(m.Groups["year"].Value), 1, 1);
                Int32 dayofyear = ISO8601DateTimeHelper.GetDayOfYearByWeek(Convert.ToInt32(m.Groups["year"].Value), Convert.ToInt32(m.Groups["weekofyear"].Value), Convert.ToInt32(m.Groups["dayofweek"].Value));
                datetime = datetime.AddDays(dayofyear - 1);
                break;

            default:
                break;
            }
            return(datetime);
        }
示例#2
0
 /// <summary>
 /// 创建ISO8601Date对象
 /// </summary>
 /// <param name="datetime">日期和时间数据</param>
 /// <param name="format">格式化方式</param>
 public ISO8601Date(DateTime datetime, ISO8601DateFormats format)
 {
     m_Value  = datetime;
     m_Format = format;
 }