Моя программа должна рассчитать периоды сверхурочных рабочих для расчета зарплаты. С этой целью то, что я делаю сейчас, - это время рабочего времени рабочего и время, а затем я рассчитываю с помощью шкал времени компании и получаю, сколько часов сверхурочно каждый рабочий. Мне нужно округлить эти моменты до ближайших 15 минут, поэтому мне нужно пройти класс в часы и вернуться в округлые часы.Как округлить время до ближайшей 15 минут в java
Например:
- если сверхурочные часы в 2,17 ч она должна быть округлена до 2.15.
- если сверхурочные часы равны 2,24 часа, он должен быть округлен до 2,30.
- если сверхурочное время составляет 2,40 часа, оно должно быть 2,45.
если сверхурочные часы составляют 2,56 часа, это должно быть 3 часа.
Строка RoundToNearest15Min общественности (долгое время) {
long milsec = Time; System.out.println("milsecond :" + milsec); long sec = Time/1000; ValidateValues.roundupDouble(sec); System.out.println("second :" + sec); double min = sec/60; ValidateValues.roundupDouble(min); System.out.println("miniutes :" + min); double hrs = min/60; System.out.println("hours :" + hrs); double roundeVal = ValidateValues.roundupDouble(hrs); String hrsvalue = String.valueOf(roundeVal); System.out.println(hrsvalue); String splitVal[] = hrsvalue.split("\\."); System.out.println(splitVal[0]); System.out.println(splitVal[1]); int splitedValue2 = Integer.parseInt(splitVal[1]); int splitedValue1 = Integer.parseInt(splitVal[0]); if (splitedValue2 <= 15) { int rounded = splitedValue2 > 7 ? (15) : (0); return splitedValue1 + "." + rounded; } if (splitedValue2 > 15 && splitedValue2 <= 30) { int rounded = splitedValue2 > 22 ? (30) : (15); return splitedValue1 + "." + rounded; } if (splitedValue2 > 30 && splitedValue2 <= 45) { int rounded = splitedValue2 > 37 ? (45) : (30); return splitedValue1 + "." + rounded; } if (splitedValue2 > 45 && splitedValue2 <= 59) { int rounded = splitedValue2 > 51 ? (00) : (45); if (rounded == 00) { splitedValue1++; return splitedValue1 + "." + rounded; } else { return splitedValue1 + "." + rounded; } } return "";
}
У меня есть некоторые расчеты, но они не тренируются. – user2576816
Что такое «экземпляр времени», используемый здесь: «длинная эпоха», «дата», «локальная дата», «календарь», ... округление обычно выполняется с помощью оператора modulo. Покажите, что у вас есть, чтобы помочь вам в этой части. – AxelH
это класс, который теперь используется ими, – user2576816