예제 #1
0
        private static string OneRandomNumber(DateTime date, GenderRequest gender, AdjustNumber adjustMethod)
        {
            string dateStr = DateStr(date);
            string number;
            char   checkDigit2;

            do
            {
                char checkDigit1;
                do
                {
                    int individualNo = GetIndividualNumber(date.Year, gender);
                    number = String.Format("{0}{1:000}", dateStr, individualNo);
                    if (adjustMethod != null)
                    {
                        number = adjustMethod(number);
                    }
                    checkDigit1 = Modulo11(WeightsForCheckDigit1, number);
                } while ('-' == checkDigit1);
                number     += checkDigit1;
                checkDigit2 = Modulo11(WeightsForCheckDigit2, number);
            } while ('-' == checkDigit2);
            number += checkDigit2;
            return(number);
        }
예제 #2
0
        protected static string OneRandomNumber(AdjustNumber adjustMethod = null)
        {
            DateTime date   = DateInRange(FirstPossible, LastPossible);
            string   number = OneRandomNumber(date, GenderRequest.Any, adjustMethod);

            return(number);
        }
예제 #3
0
        protected static string MakeDate(string pattern, AdjustNumber adjustMethod = null)
        {
            string result;

            if (pattern.StartsWith("??????"))
            {
                result = DateStr(DateInRange(FirstPossible, LastPossible));
            }
            else
            {
                result = String.Empty;
                for (int index = 0; index < 6; ++index)
                {
                    if (Wildcard == pattern[index])
                    {
                        result += (char)('0' + Rand.Next(10));
                    }
                    else
                    {
                        result += pattern[index];
                    }
                }
            }
            if (adjustMethod != null)
            {
                result = adjustMethod(result);
            }
            return(result);
        }
예제 #4
0
        protected static string OneRandomNumber(DateTime dateFrom, DateTime dateTo, GenderRequest gender, AdjustNumber adjustMethod = null)
        {
            if (dateFrom < FirstPossible)
            {
                string msg = String.Format("Fra-dato ({0}) kan ikke være tidligere enn {1}.", dateFrom, FirstPossible);
                throw new NinException(Statuscode.BadDate, msg);
            }
            if (dateTo > LastPossible)
            {
                string msg = String.Format("Til-dato ({0}) kan ikke være senere enn {1}.", dateTo, LastPossible);
                throw new NinException(Statuscode.BadDate, msg);
            }
            if (dateFrom > dateTo)
            {
                string msg = String.Format("Fra-dato ({0}) kan ikke være senere enn til-dato ({1}).", dateFrom, dateTo);
                throw new NinException(Statuscode.BadDate, msg);
            }
            DateTime date   = DateInRange(dateFrom, dateTo);
            string   number = OneRandomNumber(date, gender, adjustMethod);

            return(number);
        }