protected override string GetStringValue() { string prefix = string.Empty; if (fApproximated != GDMApproximated.daExact) { prefix = GEDCOMDateApproximatedArray[(int)fApproximated] + " "; } string escapeStr = string.Empty; if (fCalendar != GDMCalendar.dcGregorian) { escapeStr = GEDCOMDateEscapeArray[(int)fCalendar] + " "; } string dayStr = string.Empty; if (fDay > 0) { dayStr = fDay.ToString(); if (dayStr.Length == 1) { dayStr = "0" + dayStr; } dayStr += " "; } string monthStr = string.Empty; if (fMonth > 0) { string[] monthes = GDMDate.GetMonthNames(fCalendar); monthStr = monthes[fMonth - 1] + " "; } string yearStr = string.Empty; if (fYear != UNKNOWN_YEAR) { yearStr = fYear.ToString(); if (fYearModifier != "") { yearStr = yearStr + "/" + fYearModifier; } if (fYearBC) { yearStr += GEDCOMProvider.GEDCOM_YEAR_BC; } } string result = prefix + escapeStr + dayStr + monthStr + yearStr; return(result); }
private static string CheckGEDCOMMonth(GDMCalendar calendar, string str) { // An empty string is a valid identifier for an unknown month if (string.IsNullOrEmpty(str)) { return(string.Empty); } string[] monthes = GDMDate.GetMonthNames(calendar); str = str.ToUpperInvariant(); for (int m = 0; m < monthes.Length; m++) { if (monthes[m] == str) { return(str); } } throw new GDMDateException(string.Format("The string {0} is not a valid {1} month identifier", str, calendar.ToString())); }