internal static String ToString(int Number) {
char cTens = '\x0';
char cUnits; // tens and units chars
int Hundreds, Tens; // hundreds and tens values
StringBuilder szHebrew = new StringBuilder();
//
// Adjust the number if greater than 5000.
//
if (Number > 5000) {
Number -= 5000;
}
BCLDebug.Assert(Number > 0 && Number <= 999, "Number is out of range.");;
//
// Get the Hundreds.
//
Hundreds = Number / 100;
if (Hundreds > 0) {
Number -= Hundreds * 100;
// \x05e7 = 100
// \x05e8 = 200
// \x05e9 = 300
// \x05ea = 400
// If the number is greater than 400, use the multiples of 400.
for (int i = 0; i < (Hundreds / 4) ; i++) {
szHebrew.Append('\x05ea');
}
int remains = Hundreds % 4;
if (remains > 0) {
szHebrew.Append((char)((int)'\x05e6' + remains));
}
}
//
// Get the Tens.
//
Tens = Number / 10;
Number %= 10;
switch (Tens) {
case ( 0 ) :
cTens = '\x0';
break;
case ( 1 ) :
cTens = '\x05d9'; // Hebrew Letter Yod
break;
case ( 2 ) :
cTens = '\x05db'; // Hebrew Letter Kaf
break;
case ( 3 ) :
cTens = '\x05dc'; // Hebrew Letter Lamed
break;
case ( 4 ) :
cTens = '\x05de'; // Hebrew Letter Mem
break;
case ( 5 ) :
cTens = '\x05e0'; // Hebrew Letter Nun
break;
case ( 6 ) :
cTens = '\x05e1'; // Hebrew Letter Samekh
break;
case ( 7 ) :
cTens = '\x05e2'; // Hebrew Letter Ayin
break;
case ( 8 ) :
cTens = '\x05e4'; // Hebrew Letter Pe
break;
case ( 9 ) :
cTens = '\x05e6'; // Hebrew Letter Tsadi
break;
}
//
// Get the Units.
//
cUnits = (char)(Number > 0 ? ((int)'\x05d0' + Number - 1) : 0);
if ((cUnits == '\x05d4') && // Hebrew Letter He (5)
(cTens == '\x05d9')) { // Hebrew Letter Yod (10)
cUnits = '\x05d5'; // Hebrew Letter Vav (6)
cTens = '\x05d8'; // Hebrew Letter Tet (9)
}
if ((cUnits == '\x05d5') && // Hebrew Letter Vav (6)
(cTens == '\x05d9')) { // Hebrew Letter Yod (10)
cUnits = '\x05d6'; // Hebrew Letter Zayin (7)
cTens = '\x05d8'; // Hebrew Letter Tet (9)
}
//
// Copy the appropriate info to the given buffer.
//
if (cTens != '\x0') {
szHebrew.Append(cTens);
}
if (cUnits != '\x0') {
szHebrew.Append(cUnits);
}
if (szHebrew.Length > 1) {
szHebrew.Insert(szHebrew.Length - 1, '"');
} else {
szHebrew.Append('\'');
}
//
// Return success.
//
return (szHebrew.ToString());
}