package com.sandu.ximon.admin.security; import com.sandu.ximon.admin.vo.ControlLightCommandVO; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; /** * @Author liuhaonan * @Date 2022/4/19 * @Version 1.0 */ public class stringTest { public static void main(String[] args) { String command = "16050032359000"; // String command = "00000500605000"; char[] chars = command.toCharArray(); int i = chars.length / 7; List list = new ArrayList<>(); for (int j = 0; j < i; j++) { int hour = Integer.valueOf(command.substring(0 + (j * 7), 2 + (j * 7))); int min = Integer.valueOf(command.substring(2 + (j * 7), 4 + (j * 7))); int brightness = Integer.valueOf(command.substring(4 + (j * 7), 7 + (j * 7))); ControlLightCommandVO vo = new ControlLightCommandVO(); vo.setHour(hour); vo.setMin(min); vo.setBrightness(brightness); list.add(vo); } ControlLightCommandVO v1 = list.get(0); ControlLightCommandVO v2 = list.get(1); // int i1 = v2.getHour() - v1.getHour(); // int i2 = (v2.getMin()- v1.getMin()); BigDecimal hour = BigDecimal.valueOf((v2.getHour()- v1.getHour())); BigDecimal min = BigDecimal.valueOf((v2.getMin()- v1.getMin())/60); BigDecimal totalTime=(hour.add(min)); // int total=(i1*3600+i2*60); // BigDecimal energySaving = BigDecimal.valueOf(((100-v1.getBrightness())/100)*totalTime/24); // BigDecimal energySaving =BigDecimal.valueOf((100-v1.getBrightness())).divide(BigDecimal.valueOf(100)).multiply(totalTime).divide(BigDecimal.valueOf(24)); BigDecimal energySaving =new BigDecimal(100).subtract(BigDecimal.valueOf(v1.getBrightness())).divide(BigDecimal.valueOf(100)).multiply(totalTime).divide(BigDecimal.valueOf(24),2); System.out.println(energySaving); // System.out.println(energySaving+"----------------------"+energySaving1); } }