Формирование поисковой строки avito (Диапазон лет и т.п.) Формула - C#
Формулировка задачи:
Диапазон идет от 0 до пустой строки "". То есть
допустим 1960 и раньше год это 0, 2017 и выше это пустая строка, между ними буква b
0b. будет значить, что поиск нужно вести от начала времен и до сегодняшнего дня.
Дальше интереснее, зависимости не нашел, поэтому и спрашиваю, может кто-нибудь увидит ее.
У каждой функции в поиске авито, будь то год, пробег и т.п., есть свой префикс, у года он 188_ , то есть чтобы найти допустим года с 1999 по 2004, нужно послать авито вот такие агрументы 188_892b897., точка это как бы переход на следующую функцию, и не обязательна, если следующей функции нет.
Вот что у меня получилось, делал с помощью switch
Помогите найти закономерность в формировании запроса, а то так слишком громоздко получается.. ((
Листинг программы
- switch (yMin)
- {
- case "1970":
- case "1971":
- case "1972":
- case "1973":
- case "1974":
- case "1975":
- case "1976":
- case "1977":
- case "1978":
- case "1979":
- {
- yearMin = "782";
- break;
- }
- case "1980":
- case "1981":
- case "1982":
- case "1983":
- case "1984":
- {
- yearMin = "873";
- break;
- }
- case "1985":
- case "1986":
- case "1987":
- case "1988":
- case "1989":
- {
- yearMin = "878";
- break;
- }
- case "1990":
- {
- yearMin = "883";
- break;
- }
- case "1991":
- {
- yearMin = "884";
- break;
- }
- case "1992":
- {
- yearMin = "885";
- break;
- }
- case "1993":
- {
- yearMin = "886";
- break;
- }
- case "1994":
- {
- yearMin = "887";
- break;
- }
- case "1995":
- {
- yearMin = "888";
- break;
- }
- case "1996":
- {
- yearMin = "889";
- break;
- }
- case "1997":
- {
- yearMin = "890";
- break;
- }
- case "1998":
- {
- yearMin = "891";
- break;
- }
- case "1999":
- {
- yearMin = "892";
- break;
- }
- case "2000":
- {
- yearMin = "893";
- break;
- }
- case "2001":
- {
- yearMin = "894";
- break;
- }
- case "2002":
- {
- yearMin = "895";
- break;
- }
- case "2003":
- {
- yearMin = "896";
- break;
- }
- case "2004":
- {
- yearMin = "897";
- break;
- }
- case "2005":
- {
- yearMin = "898";
- break;
- }
- case "2006":
- {
- yearMin = "899";
- break;
- }
- case "2007":
- {
- yearMin = "900";
- break;
- }
- case "2008":
- {
- yearMin = "901";
- break;
- }
- case "2009":
- {
- yearMin = "902";
- break;
- }
- case "2010":
- {
- yearMin = "2844";
- break;
- }
- case "2011":
- {
- yearMin = "2845";
- break;
- }
- case "2012":
- {
- yearMin = "6045";
- break;
- }
- case "2013":
- {
- yearMin = "8581";
- break;
- }
- case "2014":
- {
- yearMin = "11017";
- break;
- }
- case "2015":
- {
- yearMin = "13978";
- break;
- }
- case "2016":
- {
- yearMin = "16381";
- break;
- }
- case "2017":
- {
- yearMin = "19775";
- break;
- }
- default:
- break;
- }
https://www.avito.ru/petrozavodsk/avtomobili?f=188_892b897
Поисковая строка
Решение задачи: «Формирование поисковой строки avito (Диапазон лет и т.п.) Формула»
textual
Листинг программы
- private static string GetYearMin2(int year)
- {
- if (year >= 1970 && year <= 1979)
- return "782";
- else if (year >= 1980 && year <= 1984)
- return "873";
- else if (year >= 1985 && year <= 1989)
- return "878";
- else if (year >= 1990 && year <= 2009)
- return (year - 1107).ToString();
- else if (year >= 2010 && year <= 2017)
- {
- return (new int[] { 2844, 2845, 6045, 8581, 11017, 13978, 16381, 19775 })[year - 2010].ToString();
- }
- else return String.Empty;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д