Вывести даты из файла в формате - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Подскажите пожалуйста как решить: "Вывести даты из файла в формате « ДД Месяц ГГ г.», где ДД – день двузначным числом, Месяц - русское наименование месяца в родительном падеже, ГГ – последние две цифры года. Каждая дата в файле находится на отдельной строчке. Первое число – год, второе число – день, третье число – номер месяца. Элементы даты в файле разделены запятой." Вот что я навоял:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. namespace ReadFiles
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. int a = 0;
  13. string textShow;
  14. int t = int.Parse(Console.ReadLine());
  15. //проверка на наличе файла
  16. if (!File.Exists("test" + t + ".txt"))
  17. {
  18. Console.WriteLine("error");
  19. return;
  20. }
  21. StreamReader sr2 = new StreamReader("test" + t + ".txt");
  22. //вывод содержимого
  23. while (!sr2.EndOfStream) //пока не закончился файл
  24. {
  25. String str = sr2.ReadLine();
  26. //удаляем запятые
  27. str = str.Replace(" ", "");
  28. //если в строке символов больше
  29. if (str.Length > 10)
  30. {
  31. textShow = "неверная дата";
  32. }
  33. //выводим день
  34. string day;
  35. if (str.IndexOf(',', 5) == 6)
  36. {
  37. day = str.Substring(5, 1);
  38. }
  39. else
  40. {
  41. //Console.WriteLine(str.Substring(5, 2));
  42. day = str.Substring(5, 2);
  43. }
  44. //Выводим месяц
  45. int begin = str.IndexOf(',',5)+1;
  46. int count = str.Length - begin;
  47. string month = str.Substring(begin, count);
  48. string year = str.Substring(2, 2);
  49. if (Convert.ToInt32(day) > Convert.ToInt32("31"))
  50. {
  51. day = "неверный день";
  52. }
  53. //если
  54. if (month == "1")
  55. {
  56. month = "Января";
  57. }
  58. else if (month == "2")
  59. {
  60. month = "Февраля";
  61. }
  62. else if (month == "3")
  63. {
  64. month = "Марта";
  65. }
  66. else if (month == "4")
  67. {
  68. month = "Апреля";
  69. }
  70. else if (month == "5")
  71. {
  72. month = "Мая";
  73. }
  74. else if (month == "6")
  75. {
  76. month = "Июня";
  77. }
  78. else if (month == "7")
  79. {
  80. month = "Июля";
  81. }
  82. else if (month == "8")
  83. {
  84. month = "Августа";
  85. }
  86. else if (month == "9")
  87. {
  88. month = "Сентября";
  89. }
  90. else if (month == "10")
  91. {
  92. month = "Октября";
  93. }
  94. else if (month == "11")
  95. {
  96. month = "Ноября";
  97. if (day == "31")
  98. {
  99. Console.WriteLine("невозможная дата");
  100. break;
  101. }
  102. }
  103. else if (month == "12")
  104. {
  105. month = "Декабря";
  106. }
  107. else
  108. {
  109. month = "месяц неверный";
  110. }
  111. //Console.WriteLine(textShow);
  112. Console.WriteLine(day +" "+ month + " "+ year + " г.");
  113. a++;
  114.  
  115. }
  116. //закрытие файла
  117. sr2.Close();
  118. }
  119. }
  120. }
Тесты и результат всего этого действа я прикрепил. Хочу сделать такие проверки: 1) 2012,24,13 (значение месяц > 12 (кол-во месяцев) и значит ошибка "неверная строка") 2) 2012,18,_ (здесь значение месяца вообще не указано, значит надо проверить, есть ли в значении месяц хоть что-то) 3) 1977,,2 (отсутствует значение на месте "дня", наверное надо проверить, есть ли на этом месте какая-нибудь инфа или нет) 4) ,9,5 (отсутствует год) 5) 1980,12,января (значение указано не цифрами а текстом, то есть тип переменой не инт., поэтому тоже ошибка) 6) 2002,24,06 (здесь всё считается, но вот как проигнорировать ноль, мне не понятно...) Помогите пожалуйста достигнуть понимания решения подобных задач. )) Всех с новым годом!)

Решение задачи: «Вывести даты из файла в формате»

textual
Листинг программы
  1. CultureInfo russia = new CultureInfo("ru-RU");
  2. string s = "2012,24,12";
  3. DateTime d;
  4. if (DateTime.TryParseExact(s, new[]{"yyyy,d,M","yy,d,M"}, CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind | DateTimeStyles.AllowWhiteSpaces, out d))
  5. {
  6.     Console.WriteLine("{0}", d.ToString("d MMMM yy г.", russia));
  7. }
  8. else
  9. {
  10.     Console.WriteLine("Неверный формат входной строки");
  11. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы