Beispiel #1
0
        //根据页面的原有的编号自动生成新的编号
        public string NextNumber(string BaseNumber)
        {
            string NewNumber = ""; //新值
            int    InNumber  = 1;  //进位
            int    PlaceValue;     //位值

            char[] No = BaseNumber.ToCharArray();
            for (int i = BaseNumber.Length - 1; i >= 0; i--)
            {
                if (No[i] == '9' && InNumber == 1)
                {
                    InNumber  = 1;
                    NewNumber = "0" + NewNumber;
                }
                else
                if (InNumber == 1 && No[i] >= '0' && No[i] < '9')
                {
                    PlaceValue = Int32.Parse(No[i].ToString());
                    PlaceValue = (InNumber + PlaceValue);
                    InNumber   = 0;
                    NewNumber  = PlaceValue.ToString() + NewNumber;
                }
                else
                {
                    InNumber  = 0;
                    NewNumber = No[i] + NewNumber;
                }
            }
            if (BaseNumber == NewNumber)
            {
                NewNumber = "0000000001";
            }
            return(NewNumber);
        }
Beispiel #2
0
 public SymbolsForPlaceValue(PlaceValue placeValue) =>
Beispiel #3
0
        private static string DigitAtPlaceValueToRomanNumeralString(this uint number, PlaceValue placeValue)
        {
            uint digit = number.DigitAtPlaceValue(placeValue);

            switch (digit)
            {
            case 9:
            {
                var s = new SymbolsForPlaceValue(placeValue);
                return(s.Base().ToString() + s.BaseTimesTen());
            }

            case 4:
            {
                var s = new SymbolsForPlaceValue(placeValue);
                return(s.Base().ToString() + s.BaseTimesFive());
            }

            case 0:
                return("");
            }

            var    symbols       = new SymbolsForPlaceValue(placeValue);
            String romanNumerals = "";

            if (digit >= 5)
            {
                romanNumerals += symbols.BaseTimesFive();
                digit         -= 5;
            }

            while (digit >= 1)
            {
                romanNumerals += symbols.Base();
                digit         -= 1;
            }

            return(romanNumerals);
        }
Beispiel #4
0
 private static uint DigitAtPlaceValue(this uint number, PlaceValue placeValue) =>
 number / (uint)placeValue % 10;