Advertisement
Venciity

[Jumpstart C#] - Clock

Jan 22nd, 2014
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.88 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 Clock
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Console.OutputEncoding = Encoding.UTF8;
  14.  
  15.             //int hour = 0;
  16.             //int minute = 0;
  17.             //string time = "";
  18.  
  19.             //do
  20.             //{
  21.             //    Console.WriteLine("Въведете час във формат чч:мм");
  22.             //    string timeString = Console.ReadLine();
  23.  
  24.             //    string[] elements = timeString.Split(':');
  25.                
  26.             //    if (elements.Length != 2)
  27.             //        continue;
  28.  
  29.             //    hour = Int32.Parse(elements[0]);
  30.             //    minute = Int32.Parse(elements[1]);
  31.             //} while (hour < 0 || hour > 23 || minute < 0 || minute > 59);
  32.  
  33.             while (true)
  34.             {
  35.                 Console.Clear();
  36.                 DateTime currentTime = DateTime.Now;
  37.  
  38.                 string hourString = ConvertTimeUnitsToString(currentTime.Hour, true);
  39.                 string minuteString = ConvertTimeUnitsToString(currentTime.Minute, false);
  40.                 string secondString = ConvertTimeUnitsToString(currentTime.Second, false);
  41.  
  42.                 Console.WriteLine(hourString + " часа и "
  43.                     + minuteString + (currentTime.Minute == 1 ? " минута" : " минути")
  44.                     + " и " + secondString + (currentTime.Second == 1 ? " секунда" : " секунди"));
  45.  
  46.                 System.Threading.Thread.Sleep(200);
  47.             }
  48.         }
  49.  
  50.         //Converts time units (hours, minutes or seconds) to word
  51.         private static string ConvertTimeUnitsToString(int unit, bool isHour)
  52.         {
  53.             string time = "";
  54.  
  55.             int ones = unit % 10;
  56.             int tens = unit / 10;
  57.  
  58.             string unitOnesString = ConvertDigitToString(ones, isHour);
  59.             string unitOnesMasculineString = ConvertDigitToString(ones, true);
  60.             string unitTensString = ConvertDigitToString(tens, true);
  61.  
  62.             if (tens == 0) // 1 2 3 4 5 6 7 8 9
  63.                 time += unitOnesString;
  64.             else if (tens == 1) //1x
  65.             {
  66.                 if (ones == 0) //10
  67.                 {
  68.                     //do nothing
  69.                 }
  70.                 else if (ones == 1) //11
  71.                     time += unitOnesMasculineString + "а";
  72.                 else //12 13 14 15 16 17 18 19
  73.                     time += unitOnesMasculineString + "на";
  74.  
  75.                 time += "десет";
  76.             }
  77.             else
  78.             {
  79.                 if (ones == 0) //10 20 30 40 50
  80.                     time += unitTensString + "десет";
  81.                 else //21 22 ... 28 29 31 32 33 ... 39 41 42 ... 48 49 51 ... 59
  82.                     time += unitTensString + "десет и " + unitOnesString;
  83.             }
  84.  
  85.             return time;
  86.         }
  87.  
  88.         private static string ConvertDigitToString(int digit, bool masculine)
  89.         {
  90.             switch (digit)
  91.             {
  92.                 case 0:
  93.                     return "нула";
  94.                 case 1:
  95.                     return masculine ? "един" : "една";
  96.                 case 2:
  97.                     return masculine ? "два" : "две";
  98.                 case 3:
  99.                     return "три";
  100.                 case 4:
  101.                     return "четири";
  102.                 case 5:
  103.                     return "пет";
  104.                 case 6:
  105.                     return "шест";
  106.                 case 7:
  107.                     return "седем";
  108.                 case 8:
  109.                     return "осем";
  110.                 case 9:
  111.                     return "девет";
  112.                 default:
  113.                     return "";
  114.             }
  115.         }
  116.     }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement