Esempio n. 1
0
        public void Test_SetDateHebrew()
        {
            GDMDate instance = new GDMDate(null);

            instance.SetDate(GDMCalendar.dcHebrew, 20, 12, 1980);
            Assert.AreEqual("1980.12.20", instance.GetDisplayString(DateFormat.dfYYYY_MM_DD, false, false));
            Assert.AreEqual("@#DHEBREW@ 20 AAV 1980", instance.StringValue);
        }
Esempio n. 2
0
        public void Test_SetDateJulian()
        {
            GDMDate instance = new GDMDate(null);

            instance.SetDate(GDMCalendar.dcJulian, 20, 12, 1980);
            Assert.AreEqual("1980.12.20", instance.GetDisplayString(DateFormat.dfYYYY_MM_DD, false, false));
            Assert.AreEqual("@#DJULIAN@ 20 DEC 1980", instance.StringValue);
        }
Esempio n. 3
0
        public void Test_SetDateFrench()
        {
            GDMDate instance = new GDMDate(null);

            instance.SetDate(GDMCalendar.dcFrench, 20, 12, 1980);
            Assert.AreEqual("1980.12.20", instance.GetDisplayString(DateFormat.dfYYYY_MM_DD, false, false));
            Assert.AreEqual("@#DFRENCH R@ 20 FRUC 1980", instance.StringValue);
        }
Esempio n. 4
0
        public void Test_ParseStringUnknown()
        {
            GDMDate instance = new GDMDate(null);

            instance.SetDate(GDMCalendar.dcIslamic, 0, 0, 0);
            Assert.AreEqual(string.Empty, instance.ParseString("@#DUNKNOWN@ 20 DEC 1980"));
            Assert.AreEqual("@#DUNKNOWN@ 20 DEC 1980", instance.StringValue);
        }
Esempio n. 5
0
        /// <summary>
        /// This function transforms the string into a date. All components of
        /// the date's string must be given by numbers in order of day / month / year.
        /// This function is intended only for use with the date entry controls (fixed format of date's string).
        /// </summary>
        public static GDMDate CreateByFormattedStr(string dateStr, GDMCalendar calendar, bool aException)
        {
            if (string.IsNullOrEmpty(dateStr))
            {
                return(null);
            }

            if (dateStr.IndexOf("-") >= 0)
            {
                dateStr = dateStr.Replace("-", ".");
            }
            if (dateStr.IndexOf("/") >= 0)
            {
                dateStr = dateStr.Replace("/", ".");
            }
            if (dateStr.IndexOf("_") >= 0)
            {
                dateStr = dateStr.Replace("_", " ");
            }

            string[] dtParts = dateStr.Split('.');
            if (dtParts.Length < 3)
            {
                if (aException)
                {
                    throw new GDMDateException(string.Format("GEDCOMDate.CreateByFormattedStr(): date format is invalid {0}", dateStr));
                }

                return(null);
            }

            string pd = dtParts[0].Trim();
            string pm = dtParts[1].Trim();
            string py = dtParts[2].Trim();

            int day   = (pd == "") ? 0 : ConvertHelper.ParseInt(pd, 0);
            int month = (pm == "") ? 0 : ConvertHelper.ParseInt(pm, 0);
            int year  = (py == "") ? UNKNOWN_YEAR : ConvertHelper.ParseInt(py, UNKNOWN_YEAR);

            var date = new GDMDate(null);

            date.SetDate(calendar, day, month, year);
            return(date);
        }