lab5.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. //индивидуальная задача номер 23
  2. char[] zv = { 'б', 'в', 'г', 'д', 'ж', 'з', 'л', 'м', 'н', 'р' };
  3. Console.Write("Напишите предложение: ");
  4. string str = Convert.ToString(Console.ReadLine());
  5. str = str.Trim();
  6. for (int i = 0; i < 10; i++)
  7. {
  8. if (str.IndexOf(zv[i]) >= 0)
  9. {
  10. Console.WriteLine(zv[i]);
  11. }
  12. }
  13. Console.ReadKey();
  14. //1 задача
  15. static void Main(string[] args)
  16. {
  17. Console.WriteLine("Введите дату в формате ДД.ММ.ГГГГ:");
  18. string dateString = Console.ReadLine();
  19. if (DateTime.TryParseExact(dateString, "dd.MM.yyyy", null, System.Globalization.DateTimeStyles.None, out DateTime date))
  20. {
  21. Console.WriteLine("Дата валидная");
  22. }
  23. else
  24. {
  25. Console.WriteLine("Дата не валидная");
  26. }
  27. }
  28. //2 задача
  29. class Program
  30. {
  31. static void Main()
  32. {
  33. Console.WriteLine("Введите первую дату в формате ДД.ММ.ГГГГ:");
  34. DateTime data1 = DateTime.Parse(Console.ReadLine());
  35. Console.WriteLine("Введите вторую дату в формате ДД.ММ.ГГГГ:");
  36. DateTime data2 = DateTime.Parse(Console.ReadLine());
  37. TimeSpan raz = data1 - data2;
  38. int normraz = Math.Abs((int)raz.TotalDays);
  39. Console.WriteLine("Количество дней между датами: " + normraz);
  40. }
  41. }
  42. //3 задача
  43. class Program
  44. {
  45. static void Main()
  46. {
  47. Console.WriteLine("Введите первую дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС:");
  48. DateTime data1 = DateTime.Parse(Console.ReadLine());
  49. Console.WriteLine("Введите вторую дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС:");
  50. DateTime data2 = DateTime.Parse(Console.ReadLine());
  51. TimeSpan raz = data2 - data1;
  52. double normraz = Math.Abs(raz.TotalHours);
  53. Console.WriteLine("Количество часов между датами: " + normraz);
  54. }
  55. }
  56. //4 задача
  57. class Program
  58. {
  59. static void Main()
  60. {
  61. Console.WriteLine("Введите первую дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС:");
  62. DateTime data1 = DateTime.Parse(Console.ReadLine());
  63. Console.WriteLine("Введите вторую дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС:");
  64. DateTime data2 = DateTime.Parse(Console.ReadLine());
  65. TimeSpan raz = data2 - data1;
  66. double normraz = Math.Abs(raz.TotalMinutes);
  67. Console.WriteLine("Количество часов между датами: " + normraz);
  68. }
  69. }
  70. //5 задача
  71. class Program
  72. {
  73. static void Main()
  74. {
  75. Console.WriteLine("Введите год");
  76. int year = int.Parse(Console.ReadLine());
  77. DateTime den = new DateTime(year, 1, 1).AddDays(255);
  78. Console.WriteLine($"День программиста в {year} году: {den.ToString("dd.MM.yyyy")} ({den.DayOfWeek})");
  79. }
  80. }
  81. //6 задача
  82. class Program
  83. {
  84. static void Main()
  85. {
  86. Console.WriteLine("Введите год");
  87. int year = int.Parse(Console.ReadLine());
  88. Console.WriteLine("Введите число от 1 до 365");
  89. int day = int.Parse(Console.ReadLine());
  90. if (day >= 1 || day<=365)
  91. {
  92. DateTime den = new DateTime(year, 1, 1).AddDays(day-1);
  93. Console.WriteLine(($"В {year} году день {day} является: {den.ToString("dd.MM.yyyy")} ({den.DayOfWeek})"));
  94. }
  95. else
  96. {
  97. Console.WriteLine("Введите число от 1 до 365");
  98. }
  99. }
  100. }
  101. //7 задача
  102. Console.Write("Введите дату: ");
  103. DateTime date = new DateTime(2024,4, 30);
  104. DateTime date1 = DateTime.Parse(Console.ReadLine());
  105. if (date > date1)
  106. {
  107. TimeSpan difference = date - date1;
  108. int s = difference.Days;
  109. Console.WriteLine("Осталось " + s + " дней до экзамена.");
  110. }
  111. else if (date < date1)
  112. {
  113. TimeSpan difference = date1 - date;
  114. int s = difference.Days;
  115. Console.WriteLine("Прошло " + s + " дней от экзамена.");
  116. }
  117. else
  118. {
  119. Console.WriteLine("Сегодня экзамен!");
  120. }
  121. //8 задача
  122. Console.Write("Введите дату: ");
  123. DateTime date1 = DateTime.Parse(Console.ReadLine());
  124. date1 = date1.AddDays(1);
  125. Console.WriteLine("Завтра будет дата: " + date1.ToString("dd.MM.yyyy"));
  126. //9 задача
  127. Console.Write("Введите день и месяц рождения: ");
  128. DateTime date1 = DateTime.ParseExact(Console.ReadLine(), "dd.MM", null);
  129. DateTime date2 = DateTime.ParseExact(Console.ReadLine(), "dd.MM", null);
  130. if (date1 > date2)
  131. {
  132. TimeSpan difference = date1 - date2;
  133. int s = difference.Days;
  134. Console.WriteLine("Осталось " + s + " до дня рождения.");
  135. }
  136. else if (date1 < date2)
  137. {
  138. TimeSpan difference = date2 - date1;
  139. int s = difference.Days;
  140. Console.WriteLine("Прошло " + s + " дней со дня рождения.");
  141. }
  142. else
  143. {
  144. Console.WriteLine("Сегодня день рождения!");
  145. }
  146. //10 задача
  147. Console.Write("Введите время: ");
  148. string time1 = Console.ReadLine();
  149. if (TimeSpan.TryParse(time1, out TimeSpan time))
  150. {
  151. int seconds = (time.Hours * 3600) + (time.Minutes * 60) + time.Seconds;
  152. Console.WriteLine("Количество секунд, которые прошли с начала суток: " + seconds);
  153. }
  154. else
  155. {
  156. Console.WriteLine("Неккоректный формат времени!");
  157. }
  158. //11 задача
  159. List<DateTime> Dates = new List<DateTime>
  160. {
  161. new DateTime(2007, 07,28),
  162. new DateTime(2005,1,25),
  163. new DateTime(2015,5,9),
  164. new DateTime(2022,7,25),
  165. new DateTime(2020,9,5),
  166. new DateTime(2021,9,6),
  167. new DateTime(2001,6,29),
  168. new DateTime(2024,2,1)
  169. };
  170. DateTime today = DateTime.Today;
  171. DateTime date1 = Dates[0];
  172. TimeSpan date2 = today - date1;
  173. foreach (DateTime date in Dates)
  174. {
  175. TimeSpan difference = today - date;
  176. if (Math.Abs(difference.Days) < Math.Abs(date2.Days))
  177. {
  178. date2 = difference;
  179. date1 = date;
  180. }
  181. }
  182. Console.WriteLine("Ближайшая дата: " + date1.ToShortDateString());
  183. //12 задача
  184. List<DateTime> Dates = new List<DateTime>
  185. {
  186. new DateTime(1935, 12, 15),
  187. new DateTime(2024, 1, 25),
  188. new DateTime(2020, 5, 7),
  189. new DateTime(2001, 10, 1)
  190. };
  191. DateTime date1 = GetNearestDate(Dates);
  192. Console.WriteLine($"Ближайшая дата рождения: {date1:dd.MM.yyyy}");
  193. static DateTime GetNearestDate(List<DateTime> dates)
  194. {
  195. DateTime today = DateTime.Today;
  196. dates.Sort((d1, d2) => Math.Abs((d1 - today).Days).CompareTo(Math.Abs((d2 - today).Days)));
  197. return dates[0];
  198. }
  199. //13 задача
  200. string[] Dates = { "18.11.1887", "10.05.2005", "29.11.2006", "16.11.2021", "12.11.2008" };
  201. Dictionary<string, int> month1 = new Dictionary<string, int>();
  202. foreach (var date in Dates)
  203. {
  204. DateTime date1 = DateTime.ParseExact(date, "dd.MM.yyyy", null);
  205. string month = date1.ToString("MMMM");
  206. if (month1.ContainsKey(month))
  207. {
  208. month1[month]++;
  209. }
  210. else
  211. {
  212. month1.Add(month, 1);
  213. }
  214. }
  215. var popul = month1.Aggregate((l, r) => l.Value > r.Value ? l : r).Key;
  216. Console.WriteLine("Самый популярный месяц: " + popul);
  217. //14 задача
  218. int years1 = 10;
  219. int count1 = 0;
  220. int count2 = 0;
  221. for (int year = 1; year <= years1; year++)
  222. {
  223. for (int month = 1; month <= 12; month++)
  224. {
  225. DateTime date1 = new DateTime(year, month, 13);
  226. if (date1.DayOfWeek == DayOfWeek.Friday)
  227. {
  228. count1++;
  229. }
  230. count2++;
  231. }
  232. }
  233. Console.WriteLine("Вероятности выпадения 13 числа каждого месяца на:");
  234. Console.WriteLine("Понедельник: " + (double)CountOfThirteenths(DayOfWeek.Monday) / count2);
  235. Console.WriteLine("Вторник: " + (double)CountOfThirteenths(DayOfWeek.Tuesday) / count2);
  236. Console.WriteLine("Среда: " + (double)CountOfThirteenths(DayOfWeek.Wednesday) / count2);
  237. Console.WriteLine("Четверг: " + (double)CountOfThirteenths(DayOfWeek.Thursday) / count2);
  238. Console.WriteLine("Пятницу: " + (double)count1 / count2);
  239. Console.WriteLine("Субботу: " + (double)CountOfThirteenths(DayOfWeek.Saturday) / count2);
  240. Console.WriteLine("Воскресенье: " + (double)CountOfThirteenths(DayOfWeek.Sunday) / count2);
  241. static int CountOfThirteenths(DayOfWeek day)
  242. {
  243. int count3 = 0;
  244. for (int year = 1; year <= 10; year++)
  245. {
  246. for (int month = 1; month <= 12; month++)
  247. {
  248. DateTime date1 = new DateTime(year, month, 13);
  249. if (date1.DayOfWeek == day)
  250. {
  251. count3++;
  252. }
  253. }
  254. }
  255. return count3;
  256. }
  257. //15 задача
  258. string wod = "00:00-01:00,00:30-02:30,01:30-03:00,02:00-04:00,02:30-05:00";
  259. string[] schel = wod.Split(',');
  260. int[] time1 = new int[24];
  261. foreach (string schedule in schel)
  262. {
  263. string[] times = schedule.Split('-');
  264. string[] startTime = times[0].Split(':');
  265. string[] endTime = times[1].Split(':');
  266. int hour1 = int.Parse(startTime[0]);
  267. int hour2 = int.Parse(endTime[0]);
  268. for (int i = hour1; i < hour2; i++)
  269. {
  270. time1[i]++;
  271. }
  272. }
  273. int maxTime = 0;
  274. for (int i = 0; i < 24; i++)
  275. {
  276. if (time1[i] > maxTime)
  277. {
  278. maxTime = time1[i];
  279. }
  280. }
  281. Console.WriteLine("Максимальное количество касс работает в интервале: ");
  282. for (int i = 0; i < 24; i++)
  283. {
  284. if (time1[i] == maxTime)
  285. {
  286. Console.WriteLine("{0:00}:00 - {1:00}:00", i, i + 1);
  287. }
  288. }
  289. //16 задача
  290. int years = 2006;
  291. int weeks = CalculateWeekends(years);
  292. Console.WriteLine($"Количество выходных дней в {years} году: {weeks}");
  293. static int CalculateWeekends(int year)
  294. {
  295. DateTime date1 = new DateTime(year, 1, 1);
  296. DateTime date2 = new DateTime(year, 12, 31);
  297. int c = 0;
  298. for (var date = date1; date <= date2; date = date.AddDays(1))
  299. {
  300. if (date.DayOfWeek == DayOfWeek.Saturday || date.DayOfWeek == DayOfWeek.Sunday)
  301. {
  302. c++;
  303. }
  304. }
  305. return c;
  306. }