Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 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 Count_Working_Days
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. string format = "dd-MM-yyyy";
  14. string firstInput = Console.ReadLine();
  15. string secondInput = Console.ReadLine();
  16. int firstYear = FindYear(firstInput); //Идеята на този метод е да се извлече годината на началната и крайната дата, за да се разгледа реалния период.
  17. int secondYear = FindYear(secondInput);
  18. DateTime[] arr = new DateTime[0];
  19. if (firstYear != secondYear) //Ако има прехвърляне в година имаме по два празника, затова масивът е двоен.
  20. {
  21.  
  22. arr = new DateTime[22] { new DateTime(firstYear, 1, 1), new DateTime(secondYear, 1, 1), new DateTime(firstYear, 3, 3), new DateTime(secondYear, 3, 3), new DateTime(firstYear, 5, 1), new DateTime(secondYear, 5, 1), new DateTime(firstYear, 5, 6), new DateTime(secondYear, 5, 6), new DateTime(firstYear, 5, 24), new DateTime(secondYear, 5, 24), new DateTime(firstYear, 9, 6), new DateTime(secondYear, 9, 6), new DateTime(firstYear, 9, 22), new DateTime(secondYear, 9, 22), new DateTime(firstYear, 11, 1), new DateTime(secondYear, 11, 1), new DateTime(firstYear, 12, 24), new DateTime(firstYear, 12, 25), new DateTime(firstYear, 12, 26), new DateTime(secondYear, 12, 24), new DateTime(secondYear, 12, 25), new DateTime(secondYear, 12, 26) };
  23. }
  24. else //Ако всичко се развива в една година, то имаме само по един празник.
  25. {
  26. arr = new DateTime[11] { new DateTime(firstYear, 1, 1), new DateTime(firstYear, 3, 3), new DateTime(firstYear, 5, 1), new DateTime(firstYear, 5, 6), new DateTime(firstYear, 5, 24), new DateTime(firstYear, 9, 6), new DateTime(firstYear, 9, 22), new DateTime(firstYear, 11, 1), new DateTime(firstYear, 12, 24), new DateTime(firstYear, 12, 25), new DateTime(firstYear, 12, 26), };
  27. }
  28. DateTime firstDate = DateTime.ParseExact(firstInput, format, null);//Реалните входни дати.
  29. DateTime secondDate = DateTime.ParseExact(secondInput, format, null);
  30.  
  31. int countOfWorkingDays = 0;
  32. int m = 0;
  33. for (DateTime i = firstDate; i <= secondDate; i = firstDate.AddDays(m))
  34. {
  35. if ((i.DayOfWeek != DayOfWeek.Saturday && i.DayOfWeek != DayOfWeek.Sunday) && !arr.Contains(i))//Проверка дали датата се пада празник или събота/неделя.
  36. {
  37. countOfWorkingDays++;
  38. }
  39. m++;
  40. }
  41. Console.WriteLine(countOfWorkingDays);
  42. }
  43.  
  44.  
  45.  
  46. private static int FindYear(string input)
  47. {
  48. string[] splittedInfo = input.Split('-');
  49. int year = int.Parse(splittedInfo[2]);
  50. return year;
  51. }
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement