Exemple #1
0
        public static string GetFormat(DateFormatEnum format)
        {
            switch (format)
            {
            case DateFormatEnum.DateLong:
                return("D");

            case DateFormatEnum.DateShort:
                return("d");

            case DateFormatEnum.TimeShort:
                return("t");

            case DateFormatEnum.TimeLong:
                return("T");

            case DateFormatEnum.DateTimeFullLong:
                return("F");

            case DateFormatEnum.DateTimeFullShort:
                return("f");
            }

            return("");
        }
 public Context
 (
     DataTypeEnum dataTypeId,
     bool isRequired,
     bool hasDefaultValue,
     string defaultValue,
     string fileTypeDescription,
     int?substringStart,
     int?substringLength,
     int?fieldFormatId,
     string fieldDisplayName,
     string fieldDescription,
     string targetTableName,
     string targetFieldName
 )
 {
     _dataTypeId          = dataTypeId;
     _dataType            = GetTypeFromDataType(_dataTypeId);
     _isRequired          = isRequired;
     _hasDefaultValue     = hasDefaultValue;
     _defaultValue        = defaultValue;
     _fileTypeDescription = fileTypeDescription;
     _substringStart      = substringStart;
     _substringLength     = substringLength;
     _fieldFormatId       = fieldFormatId;
     if (_fieldFormatId.HasValue)
     {
         if (_dataTypeId == DataTypeEnum.DecimalCurrency)
         {
             CurrencyFormatEnum patternEnum = (CurrencyFormatEnum)fieldFormatId;
             _fieldFormatDescription = patternEnum.GetDisplayDescription();
         }
         else if (_dataTypeId == DataTypeEnum.DecimalPercent)
         {
             PercentFormatEnum patternEnum = (PercentFormatEnum)fieldFormatId;
             _fieldFormatDescription = patternEnum.GetDisplayDescription();
         }
         else if (_dataTypeId == DataTypeEnum.Date)
         {
             DateFormatEnum patternEnum = (DateFormatEnum)fieldFormatId;
             _fieldFormatDescription = patternEnum.GetDisplayDescription();
         }
         else if (_dataTypeId == DataTypeEnum.Time)
         {
             TimeFormatEnum patternEnum = (TimeFormatEnum)fieldFormatId;
             _fieldFormatDescription = patternEnum.GetDisplayDescription();
         }
     }
     _fieldDisplayName = fieldDisplayName;
     _fieldDescription = fieldDescription;
     _targetTableName  = targetTableName;
     _targetFieldName  = targetFieldName;
 }
Exemple #3
0
        internal string ConvertDate(DateTime?value, int?fieldFormatId, int?length)
        {
            if (!fieldFormatId.HasValue)
            {
                return(length.HasValue ? new string(' ', length.Value) : "");
            }

            if (!value.HasValue)
            {
                return(length.HasValue ? new string(' ', length.Value) : "");
            }

            DateFormatEnum patternEnum = (DateFormatEnum)fieldFormatId;
            string         pattern     = patternEnum.GetDisplayDescription();

            CultureInfo cultureInfo = CultureInfo.CurrentCulture;

            switch (pattern)
            {
            case "MM/dd/yyyy":
            case "MM/dd/yy":
            case "MM-dd-yy":
            case "MM-dd-yyyy":
            case "MMM-dd-yy":
            case "MMM-dd-yyyy":
            case "MMM-yy":
            case "MMM-yyyy":
            case "M/d/yyyy":
            case "yyyy-MM-dd":
            case "yyMMdd":
            case "ddMMyy":
            case "MMddyyyy":
            case "yyddMM":
            case "yyyyddMM":
            case "yyyyMMdd":
            case "dd-MMM-yy":
            case "MMddyy":
            case "Mddyy":
            case "Mddyyyy":
            case "#yyyy-MM-dd#":
                return(value.Value.ToString(pattern, cultureInfo));

            case "MMddyy/Mddyy":
            case "MMddyyyy/Mddyyyy":
                if (length.HasValue && length.Value == 5)
                {
                    return(value.Value.ToString("Mddyy", cultureInfo));
                }
                if (length.HasValue && length.Value == 6)
                {
                    return(value.Value.ToString("MMddyy", cultureInfo));
                }
                if (length.HasValue && length.Value == 7)
                {
                    return(value.Value.ToString("Mddyyyy", cultureInfo));
                }
                if (length.HasValue && length.Value == 8)
                {
                    return(value.Value.ToString("MMddyyyy", cultureInfo));
                }
                return(length.HasValue ? new string(' ', length.Value) : "");

            case "yyyyJJJ":
                return(value.Value.Year.ToString("0000", cultureInfo) + value.Value.DayOfYear.ToString("000", cultureInfo));

            case "yyJJJ":
                return(value.Value.Year.ToString("0000", cultureInfo).Substring(2) + value.Value.DayOfYear.ToString("000", cultureInfo));

            case "JJJyy":
                return(value.Value.DayOfYear.ToString("000", cultureInfo) + value.Value.Year.ToString("0000", cultureInfo).Substring(2));

            case "JJJyyyy":
                return(value.Value.DayOfYear.ToString("000", cultureInfo) + value.Value.Year.ToString("0000", cultureInfo));

            default:
                return(length.HasValue ? new string(' ', length.Value) : "");
            }
        }
        public static DateTime?ParseDate(string value, int?fieldFormatId)
        {
            if (!fieldFormatId.HasValue)
            {
                return(null);
            }

            if (String.IsNullOrWhiteSpace(value))
            {
                return(null);
            }

            if (String.IsNullOrWhiteSpace(value.Trim().Trim('-', '/', '0')))
            {
                return(null);
            }

            if (value.Trim().IndexOf(' ') > 0)
            {
                value = value.Trim();
                int position = value.IndexOf(' ');
                value = value.Substring(0, position);
            }

            DateFormatEnum patternEnum = (DateFormatEnum)fieldFormatId;
            string         pattern     = patternEnum.GetDisplayDescription();

            var parseExactFormats = new List <string>()
            {
                "MM/dd/yyyy",
                "MM/dd/yy",
                "MM-dd-yy",
                "MM-dd-yyyy",
                "MMM-dd-yy",
                "MMM-dd-yyyy",
                "MMM-yy",
                "MMM-yyyy",
                "M/d/yyyy",
                "yyyy-MM-dd",
                "yyMMdd",
                "ddMMyy",
                "MMddyyyy",
                "yyddMM",
                "yyyyddMM",
                "yyyyMMdd",
                "dd-MMM-yy",
                "MMddyy",
                "Mddyy",
                "Mddyyyy",
            };

            CultureInfo cultureInfo = CultureInfo.CurrentCulture;
            DateTime    iResult;
            int         jDays;
            int         iYear;

            switch (pattern)
            {
            case "MM/dd/yyyy":
            case "MM/dd/yy":
            case "MM-dd-yy":
            case "MM-dd-yyyy":
            case "MMM-dd-yy":
            case "MMM-dd-yyyy":
            case "MMM-yy":
            case "MMM-yyyy":
            case "M/d/yyyy":
            case "yyyy-MM-dd":
            case "yyMMdd":
            case "ddMMyy":
            case "MMddyyyy":
            case "yyddMM":
            case "yyyyddMM":
            case "yyyyMMdd":
            case "dd-MMM-yy":
            case "MMddyy":
            case "Mddyy":
            case "Mddyyyy":
                var dt     = DateTime.MinValue;
                var result = DateTime.TryParseExact(value, pattern, cultureInfo, DateTimeStyles.AssumeLocal, out dt);
                if (result)
                {
                    return(dt);
                }
                foreach (var ptrn in parseExactFormats)
                {
                    result = DateTime.TryParseExact(value, ptrn, cultureInfo, DateTimeStyles.AssumeLocal, out dt);
                    if (result)
                    {
                        return(dt);
                    }
                }
                return(null);

            //throw new InvalidOperationException("DateTime could not be parsed");
            //return DateTime.ParseExact(value, pattern, cultureInfo);
            case "#yyyy-MM-dd#":
                return(DateTime.ParseExact(value.Trim('#'), pattern.Trim('#'), cultureInfo));

            case "MMddyy/Mddyy":
            case "MMddyyyy/Mddyyyy":
                if (value.Length == 5)
                {
                    return(DateTime.ParseExact(value, "Mddyy", cultureInfo));
                }
                if (value.Length == 6)
                {
                    return(DateTime.ParseExact(value, "MMddyy", cultureInfo));
                }
                if (value.Length == 7)
                {
                    return(DateTime.ParseExact(value, "Mddyyyy", cultureInfo));
                }
                if (value.Length == 8)
                {
                    return(DateTime.ParseExact(value, "MMddyyyy", cultureInfo));
                }
                return(null);

            case "yyyyJJJ":
                jDays   = Convert.ToInt32(value.Substring(4, 3));
                iYear   = Convert.ToInt32(value.Substring(0, 4));
                iResult = new JulianCalendar().AddDays(new DateTime(iYear, 1, 1), jDays - 1);
                return(iResult);

            case "yyJJJ":
                jDays   = Convert.ToInt32(value.Substring(2, 3));
                iYear   = Convert.ToInt32(value.Substring(0, 2));
                iResult = new JulianCalendar().AddDays(new DateTime(iYear, 1, 1), jDays - 1);
                return(iResult);

            case "JJJyy":
                jDays   = Convert.ToInt32(value.Substring(0, 3));
                iYear   = Convert.ToInt32(value.Substring(3, 2));
                iResult = new JulianCalendar().AddDays(new DateTime(iYear, 1, 1), jDays - 1);
                return(iResult);

            case "JJJyyyy":
                jDays   = Convert.ToInt32(value.Substring(0, 3));
                iYear   = Convert.ToInt32(value.Substring(3, 4));
                iResult = new JulianCalendar().AddDays(new DateTime(iYear, 1, 1), jDays - 1);
                return(iResult);

            default:
                return(DateTime.Parse(value, cultureInfo));
            }
        }