예제 #1
0
        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);
        }
예제 #2
0
        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()));
        }