Формирование поисковой строки 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;
}