Example #1
0
        /* ==== FORMATTING DATES/TIMES TO STANDARD STRINGS ==== */

        //UPGRADE_NOTE: ref keyword was added to struct-type parameters. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1303'"
        public static System.String formatDateTime(ref System.DateTime d, int format)
        {
            //UPGRADE_TODO: The 'System.DateTime' structure does not have an equivalent to NULL. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1291'"
            if (d == null)
            {
                return("");
            }

            //UPGRADE_NOTE: ref keyword was added to struct-type parameters. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1303'"
            DateFields fields = getFields(ref d, format == FORMAT_TIMESTAMP_HTTP?"UTC":null);

            System.String delim;
            switch (format)
            {
            case FORMAT_ISO8601:  delim = "T"; break;

            case FORMAT_TIMESTAMP_SUFFIX:  delim = ""; break;

            case FORMAT_TIMESTAMP_HTTP:  delim = " "; break;

            default:  delim = " "; break;
            }

            return(formatDate(fields, format) + delim + formatTime(fields, format));
        }
Example #2
0
        private static System.String formatTimeISO8601(DateFields f)
        {
            System.String time = intPad(f.hour, 2) + ":" + intPad(f.minute, 2) + ":" + intPad(f.second, 2) + "." + intPad(f.secTicks, 3);

            //Time Zone ops (1 in the first field corresponds to 'CE' ERA)
            //UPGRADE_TODO: Method 'java.util.TimeZone.getOffset' was converted to 'System.TimeZone.GetUtcOffset' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073'"
            int offset = (int)((System.TimeZone.CurrentTimeZone.GetUtcOffset(new System.DateTime(f.year, f.month - 1, f.day)).Ticks) / 10000);

            //NOTE: offset is in millis
            if (offset == 0)
            {
                time += "Z";
            }
            else
            {
                //Start with sign
                System.String offsetSign = offset > 0?"+":"-";

                int value_Renamed = System.Math.Abs(offset) / 1000 / 60;

                System.String hrs  = intPad(value_Renamed / 60, 2);
                System.String mins = value_Renamed % 60 != 0?":" + intPad(value_Renamed % 60, 2):"";

                time += (offsetSign + hrs + mins);
            }
            return(time);
        }
Example #3
0
        //UPGRADE_NOTE: ref keyword was added to struct-type parameters. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1303'"
        public static DateFields getFields(ref System.DateTime d, System.String timezone)
        {
            System.Globalization.Calendar cd = new System.Globalization.GregorianCalendar();


            DateFields fields = new DateFields();

            return(fields);
        }
Example #4
0
        /* ==== DATE UTILITY FUNCTIONS ==== */

        public static System.DateTime getDate(int year, int month, int day)
        {
            DateFields f = new DateFields();

            f.year  = year;
            f.month = month;
            f.day   = day;

            return(new DateTime(year, month, day));
        }
Example #5
0
        public static System.DateTime parseTime(System.String str)
        {
            DateFields fields = new DateFields();

            if (!parseTime(str, fields))
            {
                //UPGRADE_TODO: The 'System.DateTime' structure does not have an equivalent to NULL. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1291'"
                return(new DateTime());
            }
            return(getDate(fields));
        }
 public override bool PrepareRun(Database.DBCon db, string tableName)
 {
     if (Values.Count > 0)
     {
         _dateField1 = (DateFields)Enum.Parse(typeof(DateFields), Values[0]);
     }
     if (Values.Count > 1)
     {
         _dateField2 = (DateFields)Enum.Parse(typeof(DateFields), Values[1]);
     }
     return(base.PrepareRun(db, tableName));
 }
Example #7
0
        private static System.String formatDateColloquial(DateFields f)
        {
            System.String year = ((System.Int32)f.year).ToString();

            //Normal Date
            if (year.Length == 4)
            {
                year = year.Substring(2, (4) - (2));
            }
            //Otherwise we have an old or bizzarre date, don't try to do anything

            return(intPad(f.day, 2) + "/" + intPad(f.month, 2) + "/" + year);
        }
Example #8
0
        /// <summary> </summary>
        /// <returns> new Date object with same date but time set to midnight (in current timezone)
        /// </returns>
        //UPGRADE_NOTE: ref keyword was added to struct-type parameters. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1303'"
        public static System.DateTime roundDate(ref System.DateTime d)
        {
            //UPGRADE_TODO: The 'System.DateTime' structure does not have an equivalent to NULL. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1291'"
            if (d == null)
            {
                //UPGRADE_TODO: The 'System.DateTime' structure does not have an equivalent to NULL. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1291'"
                return(new DateTime());
            }
            //UPGRADE_NOTE: ref keyword was added to struct-type parameters. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1303'"
            DateFields f = getFields(ref d);

            return(getDate(f.year, f.month, f.day));
        }
Example #9
0
        private static System.String formatTime(DateFields f, int format)
        {
            switch (format)
            {
            case FORMAT_ISO8601:  return(formatTimeISO8601(f));

            case FORMAT_HUMAN_READABLE_SHORT:  return(formatTimeColloquial(f));

            case FORMAT_TIMESTAMP_SUFFIX:  return(formatTimeSuffix(f));

            case FORMAT_TIMESTAMP_HTTP:  return(formatTimeHttp(f));

            default:  return(null);
            }
        }
        private string GetDateField(DateFields f)
        {
            string result = null;

            switch (f)
            {
            case DateFields.Changed:
                result = "ChangedDate";
                break;

            case DateFields.Created:
                result = "Created";
                break;

            case DateFields.DidNotFind:
                result = "DNFDate";
                break;

            case DateFields.FoundByMe:
                result = "FoundByMeDate";
                break;

            case DateFields.LastFound:
                result = "LastFoundDate";
                break;

            case DateFields.LastGPX:
                result = "LastGPXDate";
                break;

            case DateFields.LastLog:
                result = "LastLog";
                break;

            case DateFields.LastUser:
                result = "LastUserDate";
                break;

            case DateFields.Placed:
                result = "PlacedDate";
                break;

            case DateFields.UserNote:
                result = "UserNoteDate";
                break;
            }
            return(result);
        }
Example #11
0
        public DateDimension(string fieldName, Func <ProcessingScope, DateTime?> selector, string tableName = null, bool inlineFields = false, bool useDateForKey = true, DateDetailLevel detailLevel = DateDetailLevel.Date, CultureInfo cultureInfo = null, SortOrder sort = SortOrder.Ascending, bool key = false)
            : base(fieldName, tableName ?? fieldName, Enumerable.Empty <IFieldMapper>())
        {
            _selector      = selector;
            _useDateForKey = useDateForKey;
            _detailLevel   = detailLevel;
            _cultureInfo   = cultureInfo ?? CultureInfo.CurrentCulture;
            _sort          = sort;
            Key            = key;

            InlineFields = inlineFields;

            _mapper = new DateFields(this);

            FieldMappers.Add(_mapper);
        }
Example #12
0
        private static System.String formatDate(DateFields f, int format)
        {
            switch (format)
            {
            case FORMAT_ISO8601:  return(formatDateISO8601(f));

            case FORMAT_HUMAN_READABLE_SHORT:  return(formatDateColloquial(f));

            case FORMAT_HUMAN_READABLE_DAYS_FROM_TODAY:  return(formatDaysFromToday(f));

            case FORMAT_TIMESTAMP_SUFFIX:  return(formatDateSuffix(f));

            case FORMAT_TIMESTAMP_HTTP:  return(formatDateHttp(f));

            default:  return(null);
            }
        }
Example #13
0
        /// <summary> Parse the raw components of time (hh:mm:ss) with no timezone information
        ///
        /// </summary>
        /// <param name="timeStr">
        /// </param>
        /// <param name="f">
        /// </param>
        /// <returns>
        /// </returns>
        private static bool parseRawTime(System.String timeStr, DateFields f)
        {
            List <String> pieces = split(timeStr, ":", false);

            if (pieces.Count != 2 && pieces.Count != 3)
            {
                return(false);
            }

            try
            {
                f.hour   = System.Int32.Parse((System.String)pieces[0]);
                f.minute = System.Int32.Parse((System.String)pieces[1]);

                if (pieces.Count == 3)
                {
                    System.String secStr = (System.String)pieces[2];
                    int           i;
                    for (i = 0; i < secStr.Length; i++)
                    {
                        char c = secStr[i];
                        if (!System.Char.IsDigit(c) && c != '.')
                        {
                            break;
                        }
                    }
                    secStr = secStr.Substring(0, (i) - (0));

                    double fsec = System.Double.Parse(secStr);
                    //UPGRADE_WARNING: Data types in Visual C# might be different.  Verify the accuracy of narrowing conversions. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1042'"
                    f.second = (int)fsec;
                    //UPGRADE_WARNING: Data types in Visual C# might be different.  Verify the accuracy of narrowing conversions. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1042'"
                    f.secTicks = (int)(1000.0 * (fsec - f.second));
                }
            }
            catch (System.FormatException nfe)
            {
                return(false);
            }

            return(f.check());
        }
Example #14
0
        private static bool parseTime(System.String timeStr, DateFields f)
        {
            //get timezone information first. Make a Datefields set for the possible offset
            //NOTE: DO NOT DO DIRECT COMPUTATIONS AGAINST THIS. It's a holder for hour/minute
            //data only, but has data in other fields
            DateFields timeOffset = null;

            if (timeStr[timeStr.Length - 1] == 'Z')
            {
                //UTC!

                //Clean up string for later processing
                timeStr    = timeStr.Substring(0, (timeStr.Length - 1) - (0));
                timeOffset = new DateFields();
            }
            else if (timeStr.IndexOf("+") != -1 || timeStr.IndexOf("-") != -1)
            {
                timeOffset = new DateFields();
            }

            //Do the actual parse for the real time values;
            if (!parseRawTime(timeStr, f))
            {
                return(false);
            }

            if (!(f.check()))
            {
                return(false);
            }

            //Time is good, if there was no timezone info, just return that;
            if (timeOffset == null)
            {
                return(true);
            }

            return(false);
        }
Example #15
0
        private static bool parseDate(System.String dateStr, DateFields f)
        {
            List <String> pieces = split(dateStr, "-", false);

            if (pieces.Count != 3)
            {
                return(false);
            }

            try
            {
                f.year  = System.Int32.Parse((System.String)pieces[0]);
                f.month = System.Int32.Parse((System.String)pieces[1]);
                f.day   = System.Int32.Parse((System.String)pieces[2]);
            }
            catch (System.FormatException nfe)
            {
                return(false);
            }

            return(f.check());
        }
Example #16
0
        /* ==== Parsing to Human Text ==== */

        /// <summary> Provides text representing a span of time.
        ///
        /// </summary>
        /// <param name="f">The fields for the date to be compared against the current date.
        /// </param>
        /// <returns> a string which is a human readable representation of the difference between
        /// the provided date and the current date.
        /// </returns>
        private static System.String formatDaysFromToday(DateFields f)
        {
            System.String   daysAgoStr = "";
            System.DateTime d          = DateUtils.getDate(f);
            System.DateTime tempAux    = System.DateTime.Now;
            //UPGRADE_NOTE: ref keyword was added to struct-type parameters. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1303'"
            int daysAgo = DateUtils.daysSinceEpoch(ref tempAux) - DateUtils.daysSinceEpoch(ref d);

            if (daysAgo == 0)
            {
                return(Localization.get_Renamed("date.today"));
            }
            else if (daysAgo == 1)
            {
                return(Localization.get_Renamed("date.yesterday"));
            }
            else if (daysAgo == 2)
            {
                return(Localization.get_Renamed("date.twoago", new System.String[] { System.Convert.ToString(daysAgo) }));
            }
            else if (daysAgo > 2 && daysAgo <= 6)
            {
                return(Localization.get_Renamed("date.nago", new System.String[] { System.Convert.ToString(daysAgo) }));
            }
            else if (daysAgo == -1)
            {
                return(Localization.get_Renamed("date.tomorrow"));
            }
            else if (daysAgo < -1 && daysAgo >= -6)
            {
                return(Localization.get_Renamed("date.nfromnow", new System.String[] { System.Convert.ToString(-daysAgo) }));
            }
            else
            {
                return(DateUtils.formatDate(f, DateUtils.FORMAT_HUMAN_READABLE_SHORT));
            }
        }
 private string GetDateField(DateFields f)
 {
     string result = null;
     switch (f)
     {
         case DateFields.Changed:
             result = "ChangedDate";
             break;
         case DateFields.Created:
             result = "Created";
             break;
         case DateFields.DidNotFind:
             result = "DNFDate";
             break;
         case DateFields.FoundByMe:
             result = "FoundByMeDate";
             break;
         case DateFields.LastFound:
             result = "LastFoundDate";
             break;
         case DateFields.LastGPX:
             result = "LastGPXDate";
             break;
         case DateFields.LastLog:
             result = "LastLog";
             break;
         case DateFields.LastUser:
             result = "LastUserDate";
             break;
         case DateFields.Placed:
             result = "PlacedDate";
             break;
         case DateFields.UserNote:
             result = "UserNoteDate";
             break;
     }
     return result;
 }
Example #18
0
 /// <summary>RFC 822 *</summary>
 private static System.String formatDateHttp(DateFields f)
 {
     return(format(f, "%a, %d %b %Y"));
 }
Example #19
0
 /// <summary>RFC 822 *</summary>
 private static System.String formatTimeHttp(DateFields f)
 {
     return(format(f, "%H:%M:%S GMT"));
 }
Example #20
0
 public static System.DateTime getDate(DateFields f)
 {
     return(getDate(f, null));
 }
Example #21
0
 private static System.String formatDateSuffix(DateFields f)
 {
     return(f.year + intPad(f.month, 2) + intPad(f.day, 2));
 }
Example #22
0
 private static System.String formatDateISO8601(DateFields f)
 {
     return(f.year + "-" + intPad(f.month, 2) + "-" + intPad(f.day, 2));
 }
        void DoDateFieldSelect(object parameter)
        {
            DateFields p = (DateFields)Enum.Parse(typeof(DateFields), (string)parameter);

            DateFields = (DateFields ^ p);
        }
Example #24
0
 public static System.DateTime getDate(DateFields f, System.String timezone)
 {
     //TODO Datetime
     return(new DateTime());
 }
 public override bool PrepareRun(Database.DBCon db, string tableName)
 {
     if (Values.Count > 0)
     {
         _dateField1 = (DateFields)Enum.Parse(typeof(DateFields), Values[0]);
     }
     if (Values.Count > 1)
     {
         _dateField2 = (DateFields)Enum.Parse(typeof(DateFields), Values[1]);
     }
     return base.PrepareRun(db, tableName);
 }
Example #26
0
 private static System.String formatTimeColloquial(DateFields f)
 {
     return(intPad(f.hour, 2) + ":" + intPad(f.minute, 2));
 }
Example #27
0
        static Dimension GetDateDimension(AddDimensionViewModel vm)
        {
            //set starting params
            DateTime from = vm.DateFrom;
            DateTime to   = vm.DateTo;
            Func <DateTime, DateTime> IncDate = (ind) => ind.AddDays(1);

            Dimension dim = new Dimension(vm.DimensionName);
            DataTable dt  = dim.DataTable = new DataTable();

            DateFields df = vm.DateFields;

            //add field to table for each selected field
            foreach (string fieldName in Enum.GetNames(typeof(DateFields)))
            {
                var field = (DateFields)Enum.Parse(typeof(DateFields), fieldName);
                if (df.HasFlag(field) && field != DateFields.None)
                {
                    dt.Columns.Add(fieldName);
                }
            }

            //set start and end dates
            switch (vm.DateLevel)
            {
            case DateDetailLevel.Month:
                from    = new DateTime(from.Year, from.Month, 1);
                to      = new DateTime(to.Year, to.Month, 1);
                IncDate = (ind) => ind.AddMonths(1);
                break;

            case DateDetailLevel.Year:
                from    = new DateTime(from.Year, 1, 1);
                to      = new DateTime(to.Year, 1, 1);
                IncDate = (ind) => ind.AddYears(1);
                break;
            }

            //create records and fill with values
            dt.BeginLoadData();
            while (from < to)
            {
                var row = dt.NewRow();

                if (df.HasFlag(DateFields.DateKey))
                {
                    row["DateKey"] = from.ToShortDateString();
                }
                if (df.HasFlag(DateFields.DayNum))
                {
                    row["DayNum"] = from.Day;
                }
                if (df.HasFlag(DateFields.MonthNum))
                {
                    row["MonthNum"] = from.Month;
                }
                if (df.HasFlag(DateFields.YearNum))
                {
                    row["YearNum"] = from.Year;
                }

                dt.Rows.Add(row);

                from = IncDate(from);
            }
            dt.EndLoadData();

            return(dim);
        }
Example #28
0
 private static System.String formatTimeSuffix(DateFields f)
 {
     return(intPad(f.hour, 2) + intPad(f.minute, 2) + intPad(f.second, 2));
 }
        private void PrepareRecords()
        {
            // for provided user-defined field select an appropriate value
            Func <ResourceId, KeyValuePair <object, FieldPropertyCollection>, int, KeyValuePair <HrbcField, object> > userFieldDataGenerator = (resource, x, index)
                                                                                                                                               => new KeyValuePair <HrbcField, object>(new HrbcField(resource, x.Value.Name), GetTestDateTime());

            // for provided resource append 2 records with all necessary fields populated
            Func <CreateRecordRequest.IBuilder, ResourceId, int, CreateRecordRequest.IBuilderWithResource> resourceAppender = (rq, resource, index)
                                                                                                                              => rq.Append(resource, FieldCreator.Data.Where(x => x.Value.Field.Resource == resource).Select(x => userFieldDataGenerator(resource, x, index))
                                                                                                                                           .Concat(ResourceMandatoryFields[resource](index).Select(field => new KeyValuePair <HrbcField, object>(new HrbcField(resource, field.Key), field.Value)))
                                                                                                                                           .Concat(DateFields.Select(type => new KeyValuePair <HrbcField, object>(new HrbcField(resource, SearchConstants.FieldTypeToApplicationFieldNameMap[type]), GetTestDateTime())))
                                                                                                                                           .Concat(SearchConstants.SystemFieldsValues[resource].Where(x => DateFields.Contains(x.Key)).Select(field => new KeyValuePair <HrbcField, object>(new HrbcField(resource, field.Value), GetTestDateTime())))
                                                                                                                                           .Concat(AdditionalFields(resource)), $"{resource}{index}")
            ;

            RecordsCreator = new HrbcRecordCreator(() =>
            {
                var request = ResourceRequest.CreateRecords();

                for (int i = 0; i < NumRecords; i++)
                {
                    foreach (var resource in Enum.GetValues(typeof(ResourceId)).Cast <ResourceId>().Except(new[] { ResourceId.None }))
                    {
                        request = resourceAppender(request, resource, i);
                    }
                }

                return(request as CreateRecordRequest.IBuilderWithResource);
            });
        }
Example #30
0
        public static System.String format(DateFields f, System.String format)
        {
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < format.Length; i++)
            {
                char c = format[i];

                if (c == '%')
                {
                    i++;
                    if (i >= format.Length)
                    {
                        throw new System.SystemException("date format string ends with %");
                    }
                    else
                    {
                        c = format[i];
                    }

                    if (c == '%')
                    {
                        //literal '%'
                        sb.Append("%");
                    }
                    else if (c == 'Y')
                    {
                        //4-digit year
                        sb.Append(intPad(f.year, 4));
                    }
                    else if (c == 'y')
                    {
                        //2-digit year
                        sb.Append(intPad(f.year, 4).Substring(2));
                    }
                    else if (c == 'm')
                    {
                        //0-padded month
                        sb.Append(intPad(f.month, 2));
                    }
                    else if (c == 'n')
                    {
                        //numeric month
                        sb.Append(f.month);
                    }
                    else if (c == 'b')
                    {
                        //short text month
                        System.String[] months = new System.String[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
                        sb.Append(months[f.month - 1]);
                    }
                    else if (c == 'd')
                    {
                        //0-padded day of month
                        sb.Append(intPad(f.day, 2));
                    }
                    else if (c == 'e')
                    {
                        //day of month
                        sb.Append(f.day);
                    }
                    else if (c == 'H')
                    {
                        //0-padded hour (24-hr time)
                        sb.Append(intPad(f.hour, 2));
                    }
                    else if (c == 'h')
                    {
                        //hour (24-hr time)
                        sb.Append(f.hour);
                    }
                    else if (c == 'M')
                    {
                        //0-padded minute
                        sb.Append(intPad(f.minute, 2));
                    }
                    else if (c == 'S')
                    {
                        //0-padded second
                        sb.Append(intPad(f.second, 2));
                    }
                    else if (c == '3')
                    {
                        //0-padded millisecond ticks (000-999)
                        sb.Append(intPad(f.secTicks, 3));
                    }
                    else if (c == 'a')
                    {
                        //Three letter short text day
                        System.String[] dayNames = new System.String[] { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
                        sb.Append(dayNames[f.dow - 1]);
                    }
                    else if (c == 'Z' || c == 'A' || c == 'B')
                    {
                        throw new System.SystemException("unsupported escape in date format string [%" + c + "]");
                    }
                    else
                    {
                        throw new System.SystemException("unrecognized escape in date format string [%" + c + "]");
                    }
                }
                else
                {
                    sb.Append(c);
                }
            }

            return(sb.ToString());
        }