/* ==== 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)); }
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); }
//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); }
/* ==== 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)); }
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)); }
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); }
/// <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)); }
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); }
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); }
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); } }
/// <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()); }
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); }
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()); }
/* ==== 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; }
/// <summary>RFC 822 *</summary> private static System.String formatDateHttp(DateFields f) { return(format(f, "%a, %d %b %Y")); }
/// <summary>RFC 822 *</summary> private static System.String formatTimeHttp(DateFields f) { return(format(f, "%H:%M:%S GMT")); }
public static System.DateTime getDate(DateFields f) { return(getDate(f, null)); }
private static System.String formatDateSuffix(DateFields f) { return(f.year + intPad(f.month, 2) + intPad(f.day, 2)); }
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); }
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); }
private static System.String formatTimeColloquial(DateFields f) { return(intPad(f.hour, 2) + ":" + intPad(f.minute, 2)); }
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); }
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); }); }
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()); }