java - Subtraction of date and time from file contents containing dates line by line -
while((str=br.readline())!=null) { string line1=str; string line2=br.readline(); int datedifference=integer.parseint(line2.substring(8,10))-integer.parseint(line1.substring(8,10)); int yeardifference=integer.parseint(line2.substring(11,15))-integer.parseint(line1.substring(11,15)); int hourdifference=integer.parseint(line2.substring(16,18))-integer.parseint(line1.substring(16,18)); int minutedifference=integer.parseint(line2.substring(19,21))-integer.parseint(line1.substring(19,21)); int seconddifference=integer.parseint(line2.substring(22,23))-integer.parseint(line1.substring(22,23)); int lastthingdifference=integer.parseint(line2.substring(24,28))-integer.parseint(line1.substring(24,28));
system.out.println(hourdifference);}
after excuting getting error this
exception in thread "main" java.lang.numberformatexception: input string: " 1" @ java.lang.numberformatexception.forinputstring(numberformatexception.java:65) @ java.lang.integer.parseint(integer.java:569) @ java.lang.integer.parseint(integer.java:615) @ project.subtract.main(subtract.java:49)
java result: 1
the integer.parseint(string str)
method fail if string contains other numbers. in case, substring starts white space, fix need use .trim()
method remove leading/trailing white spaces so:
int datedifference=integer.parseint(line2.substring(8,10).trim())-integer.parseint(line1.substring(8,10).trim());
edit: per comment, so:
int datedifference=integer.parseint(line2.substring(8,10).trim())-integer.parseint(line1.substring(8,10).trim()); int returnval = math.abs(datedifference); //this return absolute value of integer, -50 yield 50, while 50 still yield 50.
Comments
Post a Comment