У меня есть прецедент, где я должен предоставить начальный четверть ввода и конец квартала как два ввода в виде строки. Например, я дам 201501 (начало квартала) и 201602 (конец квартала) как два квартальных ввода. Метод даст результат на карте как предыдущий начальный квартал и конец квартала следующим образом: предыдущий стартовый квартал 201303 предыдущий конец квартала 201404 т. Е. Будет рассчитана разность кварталов между двумя периодами времени. Затем предыдущий квартал будет на 1 квартал раньше начального квартала ввода и будет выведена разница в квартале между двумя входами, после чего он будет вычитаться из предыдущего квартала, чтобы получить предыдущий начальный квартал.Рассчитать разницу в четвертом квартале в java
public static Map<String,String> getPreviousQuarter(String start,String end){
String prevStartQuarter= calulatePreviousQuarter(start);
String prevEndQuarter=calulatePreviousQuarter(end);
Map<String,String> returnMap = new HashMap<String,String>();
returnMap.put("previousStartQuarter", prevStartQuarter);
returnMap.put("previousEndQuarter",prevEndQuarter);
System.out.println("the reurnmap is" +returnMap);
return returnMap;
}
private static String calulatePreviousQuarter(String input)
{
int yearVal=0;
String year = input.substring(0,4);
String quarter = input.substring(4);
if(quarter.equalsIgnoreCase("01"))
{
yearVal = Integer.valueOf(year)-1;
quarter ="04";
}
else
{
yearVal = Integer.valueOf(year);
switch(quarter)
{
case "02":
quarter ="01";
break;
case "03":
quarter ="02";
break;
case "04":
quarter ="03";
break;
default:
break;
}
}
return String.valueOf(yearVal)+quarter;
}
INPUTOUTPUT ввода Строка запуска 201501 конец строки 201602 Так разница в четверть 6 Ожидаемый результат Карта с ключом значения, как previousStartQuarter 201404 previousEndQuarter 201303
Мне сложно следовать вашему описанию, и я не могу ответить на ваш вопрос. – Thomas
Но приведенный выше код только изменил кварталы на предыдущие кварталы, но он должен фактически подсчитать разницу кварталов, а затем изменить предыдущий квартал до 1 квартала до начала начального квартала, а затем вычесть разницу кварталов за предыдущий квартал, чтобы получить предыдущий начало квартала –
Просьба предоставить ясный пример ввода, ожидаемого выхода и токового выхода. Сейчас очень неясно, о чем вы спрашиваете. – Manu