Venciity

[Jumpstart C#] - Clock 2

Jan 22nd, 2014
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.59 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Clock2
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Console.OutputEncoding = Encoding.UTF8;
  14.  
  15.             while (true)
  16.             {
  17.                 Console.Clear();
  18.                 DateTime currentTime = DateTime.Now;
  19.                 int hour = currentTime.Hour;
  20.                 int minute = currentTime.Minute;
  21.                 int second = currentTime.Second;
  22.  
  23.                 PrintPart(true, hour);
  24.                
  25.                 Print("часа,", true);
  26.                 PrintPart(false, minute);
  27.                 Print("минути и", true);
  28.                 PrintPart(false, second);
  29.                 Print("секунди", true);
  30.  
  31.                 System.Threading.Thread.Sleep(200);
  32.             }
  33.         }
  34.  
  35.         private static void PrintPart(bool isHour, int unit)
  36.         {
  37.             int partOnes = unit % 10;
  38.             int partTens = unit / 10;
  39.  
  40.             //00
  41.             Print(ConvertDigitToString(0, isHour), partOnes == partTens && partTens == 0);
  42.  
  43.             for (int i = 1; i <= 9; i++)
  44.             {
  45.                 bool highlight =
  46.                     //11 12 13 14 15 16 17 18 19
  47.                     (partTens == 1 && i == partOnes) ||
  48.                     //20 21 .. 58 59
  49.                     (partTens > 1 && i == partTens);
  50.  
  51.                 Print(ConvertDigitToString(i, true), highlight);
  52.                
  53.             }
  54.  
  55.             Console.WriteLine();
  56.  
  57.             Print("н", partTens == 1 && partOnes > 1); //12 13 14 15 16 17 18 19
  58.             Print("а", partTens == 1 && partOnes > 0); //11 12 13 14 15 16 17 18 19
  59.  
  60.             //10 11 12 .... 59
  61.             Print("десет", partTens > 0);
  62.  
  63.             // 21 22 23 ... 29 31 32 .. 39 41 42 .. 49 51 52 .. 59
  64.             Print("и", partTens > 1 && partOnes != 0);
  65.  
  66.             for (int i = 1; i <= 9; i++)
  67.             {
  68.                 bool highlight =
  69.                     //1 2 3 4 5 6 7 8 9
  70.                     (partTens == 0 && i == partOnes) ||
  71.                     // 21 22 23 ... 29 31 32 .. 39 41 42 .. 49 51 52 .. 59
  72.                     (partTens > 1 && i == partOnes);
  73.  
  74.                 Print(ConvertDigitToString(i, isHour), highlight);
  75.             }
  76.             Console.WriteLine();
  77.  
  78.         }
  79.  
  80.         private static void Print(string text, bool highlight)
  81.         {
  82.             if (highlight)
  83.                 Console.ForegroundColor = ConsoleColor.White;
  84.             else
  85.                 Console.ForegroundColor = ConsoleColor.DarkGray;
  86.  
  87.             Console.Write(text);
  88.         }
  89.  
  90.         private static string ConvertDigitToString(int digit, bool masculine)
  91.         {
  92.             switch (digit)
  93.             {
  94.                 case 0:
  95.                     return "нула";
  96.                 case 1:
  97.                     return masculine ? "един" : "една";
  98.                 case 2:
  99.                     return masculine ? "два" : "две";
  100.                 case 3:
  101.                     return "три";
  102.                 case 4:
  103.                     return "четири";
  104.                 case 5:
  105.                     return "пет";
  106.                 case 6:
  107.                     return "шест";
  108.                 case 7:
  109.                     return "седем";
  110.                 case 8:
  111.                     return "осем";
  112.                 case 9:
  113.                     return "девет";
  114.                 default:
  115.                     return "";
  116.             }
  117.         }
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment