2013-12-12 166 views
0

我有在表,time_in,TIME_OUT 3列,new_time_out将数字添加到字符串?

在获得time_in,我用下面的代码:

Calendar cal= new GregorianCalendar();   
       int hour=cal.get(Calendar.HOUR); 
       int minute=cal.get(Calendar.MINUTE); 
       int second=cal.get(Calendar.SECOND); 

       label_time.setText(hour+":"+minute+":"+second); 

在TIME_OUT:

if(a.equals("1")) { 
      b = ((hour+1)+":"+minute+":"+second); 
     } 
     else if(a.equals("2")) { 
      b = ((hour+2)+":"+minute+":"+second); 
     } 

当b为我的时间了。我将它声明为一个字符串。现在的new_time_out,我希望它是象,如果用户选择1,它会被添加到TIME_OUT的小时。

我TIME_OUT(b)是9时45分21秒和用户选择2 new_time_out将是11点45分21秒:如果他选择。例如相同。我的超时时间也是一个字符串。

+0

所以..你没有得到o/p ???发生了什么? – TheLostMind

+0

那么你的问题是什么? – gbejic

+0

@gbejic - 我想添加1或2到time_out,那么结果将是new_time_out – speedsir

回答

1

如果您的初始投入必须保持作为一个字符串,你可以分割字符串,做数学题,然后再加入回来一起作为一个字符串。例如:

String time_out = "9:45:21"; // starting time 
String[] parts = time_out.split(":"); // split into 3 parts 
parts[0] = Integer.toString(Integer.parseInt(parts[0]) + 2); // add two to hours 

String new_time_out = parts[0]+":"+parts[1]+":"+parts[2]; // recreate string   
System.out.println(new_time_out); 

这将输出:

11:45:21 
+0

好吧,我会尝试 – speedsir

0

你跟整数开始。你必须这样做增加一个整数:

Calendar cal= new GregorianCalendar();   
int hour=cal.get(Calendar.HOUR); 
int minute=cal.get(Calendar.MINUTE); 
int second=cal.get(Calendar.SECOND); 

hour += (int); 
minute += (int); 
second += (int); 

hour.toString(); 
minute.toString(); 
second.toString(); 

label_time.setText(hour+":"+minute+":"+second); 

的toString()方法所做的是什么,它采用整数并将其转化为字符串。

+0

你确定你的代码将被编译?什么是'+ =(int);'在做什么?然后你的toString()方法影响没有变量... – FazoM

+0

不,它不会编译:) – Melquiades

0

由于您使用的日历,为什么不利用它的功能: 您有:

Calendar cal= new GregorianCalendar(); 
int hour=cal.get(Calendar.HOUR); 
int minute=cal.get(Calendar.MINUTE); 
int second=cal.get(Calendar.SECOND); 

String timeIn = (hour+":"+minute+":"+second); 

现在,你可以添加2小时使用添加()函数http://docs.oracle.com/javase/6/docs/api/java/util/GregorianCalendar.html#add(int,INT),它需要两个参数:

  • INT场
  • INT量

公共无效添加(INT场,诠释金额)

添加指定的(签约)的时间来给定日历字段量的基础上,日历的规则。

所以,你可以这样做:

cal.add(Calendar.HOUR, 2); 

hour=cal.get(Calendar.HOUR); 
minute=cal.get(Calendar.MINUTE); 
second=cal.get(Calendar.SECOND); 

String newTimeOut = (hour+":"+minute+":"+second); 

所以只得到用户的输入,如:

int hoursToAdd = some value 

做:

cal.add(Calendar.HOUR, hoursToAdd); 

你也可以添加到其他字段,如Calendar.MINUTE,Calendar.SECOND等。请参阅链接。

注:添加()当你加入个小时,这将使基于字符串的做法没有意义,不检查的条件,例如,会自动处理案件。加上20点到11点00分,你会在第二天7点00分,除非你想要31点00分。