f1llow

Untitled

Nov 8th, 2021
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.01 KB | None | 0 0
  1. public static string ConvertToText(int number)
  2.     {
  3.         int[] array_int = new int[4];
  4.         string[,] array_string = new string[4, 3] {
  5.             { " миллиард", " миллиарда", " миллиардов" },
  6.             { " миллион", " миллиона", " миллионов" },
  7.             { " тысяча", " тысячи", " тысяч" },
  8.             { "", "", "" }
  9.         };
  10.  
  11.         array_int[0] = (number - (number % 1000000000)) / 1000000000;
  12.         array_int[1] = ((number % 1000000000) - (number % 1000000)) / 1000000;
  13.         array_int[2] = ((number % 1000000) - (number % 1000)) / 1000;
  14.         array_int[3] = number % 1000;
  15.  
  16.         string result = "";
  17.  
  18.         if (number == 0) result = "ноль";
  19.         else for (int i = 0; i < 4; i++)
  20.             {
  21.                 if (array_int[i] != 0)
  22.                 {
  23.                     if (((array_int[i] - (array_int[i] % 100)) / 100) != 0)
  24.                         switch (((array_int[i] - (array_int[i] % 100)) / 100))
  25.                         {
  26.                             case 1: result += " сто"; break;
  27.                             case 2: result += " двести"; break;
  28.                             case 3: result += " триста"; break;
  29.                             case 4: result += " четыреста"; break;
  30.                             case 5: result += " пятьсот"; break;
  31.                             case 6: result += " шестьсот"; break;
  32.                             case 7: result += " семьсот"; break;
  33.                             case 8: result += " восемьсот"; break;
  34.                             case 9: result += " девятьсот"; break;
  35.                         }
  36.                     if (((array_int[i] % 100) - ((array_int[i] % 100) % 10)) / 10 != 1)
  37.                     {
  38.                         switch (((array_int[i] % 100) - ((array_int[i] % 100) % 10)) / 10)
  39.                         {
  40.                             case 2: result += " двадцать"; break;
  41.                             case 3: result += " тридцать"; break;
  42.                             case 4: result += " сорок"; break;
  43.                             case 5: result += " пятьдесят"; break;
  44.                             case 6: result += " шестьдесят"; break;
  45.                             case 7: result += " семьдесят"; break;
  46.                             case 8: result += " восемьдесят"; break;
  47.                             case 9: result += " девяносто"; break;
  48.                         }
  49.                         switch (array_int[i] % 10)
  50.                         {
  51.                             case 1: if (i == 2) result += " одна"; else result += " один"; break;
  52.                             case 2: if (i == 2) result += " две"; else result += " два"; break;
  53.                             case 3: result += " три"; break;
  54.                             case 4: result += " четыре"; break;
  55.                             case 5: result += " пять"; break;
  56.                             case 6: result += " шесть"; break;
  57.                             case 7: result += " семь"; break;
  58.                             case 8: result += " восемь"; break;
  59.                             case 9: result += " девять"; break;
  60.                         }
  61.                     }
  62.                     else switch (array_int[i] % 100)
  63.                         {
  64.                             case 10: result += " десять"; break;
  65.                             case 11: result += " одиннадцать"; break;
  66.                             case 12: result += " двенадцать"; break;
  67.                             case 13: result += " тринадцать"; break;
  68.                             case 14: result += " четырнадцать"; break;
  69.                             case 15: result += " пятнадцать"; break;
  70.                             case 16: result += " шестнадцать"; break;
  71.                             case 17: result += " семнадцать"; break;
  72.                             case 18: result += " восемнадцать"; break;
  73.                             case 19: result += " девятнадцать"; break;
  74.                         }
  75.                     if (array_int[i] % 100 >= 10 && array_int[i] % 100 <= 19) result += array_string[i, 2];
  76.                     else switch (array_int[i] % 10)
  77.                         {
  78.                             case 1: result += array_string[i, 0]; break;
  79.                             case 2:
  80.                             case 3:
  81.                             case 4: result += array_string[i, 1]; break;
  82.                             case 5:
  83.                             case 6:
  84.                             case 7:
  85.                             case 8:
  86.                             case 9:
  87.                             case 0: result += array_string[i, 2]; break;
  88.                         }
  89.                 }
  90.             }
  91.  
  92.         return result.TrimStart();
  93.     }
Advertisement
Add Comment
Please, Sign In to add comment