//根据页面的原有的编号自动生成新的编号 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); }
public SymbolsForPlaceValue(PlaceValue placeValue) =>
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); }
private static uint DigitAtPlaceValue(this uint number, PlaceValue placeValue) => number / (uint)placeValue % 10;