ellapt

T11.5.WorkDays

Jan 25th, 2013
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. class WorkDays
  5. {
  6.  
  7. static int WorkDaysFromNow(DateTime today, DateTime inpDate)
  8. {
  9. int workdays = 0;
  10. List<DateTime> officialHolidays = new List<DateTime>() {
  11. DateTime.Parse("06.09.2012"),
  12. DateTime.Parse("22.09.2012"),
  13. DateTime.Parse("24.12.2012"),
  14. DateTime.Parse("25.12.2012"),
  15. DateTime.Parse("26.12.2012"),
  16. DateTime.Parse("01.01.2013"),
  17. DateTime.Parse("03.03.2013"),
  18. DateTime.Parse("01.05.2013"),
  19. DateTime.Parse("24.05.2013"),
  20. DateTime.Parse("06.09.2013"),
  21. DateTime.Parse("22.09.2013"),
  22. DateTime.Parse("24.12.2013"),
  23. DateTime.Parse("25.12.2013"),
  24. DateTime.Parse("26.12.2013"),
  25. };
  26.  
  27. for (DateTime date = today; date <= inpDate; date = date.AddDays(1))
  28. {
  29. if ((date.DayOfWeek != DayOfWeek.Saturday) && (date.DayOfWeek != DayOfWeek.Sunday)
  30. && (officialHolidays.IndexOf(date) == -1))
  31. {
  32. workdays++;
  33. }
  34. }
  35.  
  36. return workdays;
  37. }
  38.  
  39. static void Main()
  40. {
  41. Console.WriteLine("Calculate the number of workdays between today and given date,\npassed as parameter");
  42.  
  43. DateTime date;
  44. DateTime dateNow=DateTime.Now;
  45. string strNum;
  46. int workDays = 0;
  47. do
  48. {
  49. Console.Write("Enter a date in format dd.mm.yyyy: ");
  50. }
  51. while (!DateTime.TryParse(strNum = Console.ReadLine(), out date));
  52. if (date > dateNow)
  53. {
  54. workDays = WorkDaysFromNow(dateNow, date);
  55. }
  56. else
  57. {
  58. workDays = WorkDaysFromNow(date, dateNow);
  59. }
  60.  
  61. Console.WriteLine("Work days between {0:d} and {1:d}: {2}", dateNow, date, workDays);
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment