Формирование поисковой строки avito (Диапазон лет и т.п.) Формула - C#

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

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

Диапазон идет от 0 до пустой строки "". То есть допустим 1960 и раньше год это 0, 2017 и выше это пустая строка, между ними буква b 0b. будет значить, что поиск нужно вести от начала времен и до сегодняшнего дня. Дальше интереснее, зависимости не нашел, поэтому и спрашиваю, может кто-нибудь увидит ее. У каждой функции в поиске авито, будь то год, пробег и т.п., есть свой префикс, у года он 188_ , то есть чтобы найти допустим года с 1999 по 2004, нужно послать авито вот такие агрументы 188_892b897., точка это как бы переход на следующую функцию, и не обязательна, если следующей функции нет. Вот что у меня получилось, делал с помощью switch Помогите найти закономерность в формировании запроса, а то так слишком громоздко получается.. ((
Листинг программы
  1. switch (yMin)
  2. {
  3. case "1970":
  4. case "1971":
  5. case "1972":
  6. case "1973":
  7. case "1974":
  8. case "1975":
  9. case "1976":
  10. case "1977":
  11. case "1978":
  12. case "1979":
  13. {
  14. yearMin = "782";
  15. break;
  16. }
  17. case "1980":
  18. case "1981":
  19. case "1982":
  20. case "1983":
  21. case "1984":
  22. {
  23. yearMin = "873";
  24. break;
  25. }
  26. case "1985":
  27. case "1986":
  28. case "1987":
  29. case "1988":
  30. case "1989":
  31. {
  32. yearMin = "878";
  33. break;
  34. }
  35. case "1990":
  36. {
  37. yearMin = "883";
  38. break;
  39. }
  40. case "1991":
  41. {
  42. yearMin = "884";
  43. break;
  44. }
  45. case "1992":
  46. {
  47. yearMin = "885";
  48. break;
  49. }
  50. case "1993":
  51. {
  52. yearMin = "886";
  53. break;
  54. }
  55. case "1994":
  56. {
  57. yearMin = "887";
  58. break;
  59. }
  60. case "1995":
  61. {
  62. yearMin = "888";
  63. break;
  64. }
  65. case "1996":
  66. {
  67. yearMin = "889";
  68. break;
  69. }
  70. case "1997":
  71. {
  72. yearMin = "890";
  73. break;
  74. }
  75. case "1998":
  76. {
  77. yearMin = "891";
  78. break;
  79. }
  80. case "1999":
  81. {
  82. yearMin = "892";
  83. break;
  84. }
  85. case "2000":
  86. {
  87. yearMin = "893";
  88. break;
  89. }
  90. case "2001":
  91. {
  92. yearMin = "894";
  93. break;
  94. }
  95. case "2002":
  96. {
  97. yearMin = "895";
  98. break;
  99. }
  100. case "2003":
  101. {
  102. yearMin = "896";
  103. break;
  104. }
  105. case "2004":
  106. {
  107. yearMin = "897";
  108. break;
  109. }
  110. case "2005":
  111. {
  112. yearMin = "898";
  113. break;
  114. }
  115. case "2006":
  116. {
  117. yearMin = "899";
  118. break;
  119. }
  120. case "2007":
  121. {
  122. yearMin = "900";
  123. break;
  124. }
  125. case "2008":
  126. {
  127. yearMin = "901";
  128. break;
  129. }
  130. case "2009":
  131. {
  132. yearMin = "902";
  133. break;
  134. }
  135. case "2010":
  136. {
  137. yearMin = "2844";
  138. break;
  139. }
  140. case "2011":
  141. {
  142. yearMin = "2845";
  143. break;
  144. }
  145. case "2012":
  146. {
  147. yearMin = "6045";
  148. break;
  149. }
  150. case "2013":
  151. {
  152. yearMin = "8581";
  153. break;
  154. }
  155. case "2014":
  156. {
  157. yearMin = "11017";
  158. break;
  159. }
  160. case "2015":
  161. {
  162. yearMin = "13978";
  163. break;
  164. }
  165. case "2016":
  166. {
  167. yearMin = "16381";
  168. break;
  169. }
  170. case "2017":
  171. {
  172. yearMin = "19775";
  173. break;
  174. }
  175. default:
  176. break;
  177. }
https://www.avito.ru/petrozavodsk/avtomobili?f=188_892b897 Поисковая строка

Решение задачи: «Формирование поисковой строки avito (Диапазон лет и т.п.) Формула»

textual
Листинг программы
  1.         private static string GetYearMin2(int year)
  2.         {
  3.             if (year >= 1970 && year <= 1979)
  4.                 return "782";
  5.             else if (year >= 1980 && year <= 1984)
  6.                 return "873";
  7.             else if (year >= 1985 && year <= 1989)
  8.                 return "878";
  9.             else if (year >= 1990 && year <= 2009)
  10.                 return (year - 1107).ToString();
  11.             else if (year >= 2010 && year <= 2017)
  12.             {
  13.                 return (new int[] { 2844, 2845, 6045, 8581, 11017, 13978, 16381, 19775 })[year - 2010].ToString();
  14.             }
  15.             else return String.Empty;
  16.         }

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


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

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

10   голосов , оценка 3.9 из 5

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

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

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