在字符串中添加数字?

时间:2013-12-12 13:07:21

标签: java sql

我在表格中有3列,time_in,time_out,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的小时。如果他选择2则相同。例如:

我的time_out(b)是9:45:21,用户选择2. new_time_out将是11:45:21。我的时间也是一个字符串。

3 个答案:

答案 0 :(得分:1)

如果您的初始输入必须保留为String,则可以拆分String,进行数学运算,然后再将其作为String重新连接在一起。例如:

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

答案 1 :(得分: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()方法的作用是,它采用整数并将它们转换为字符串。

答案 2 :(得分: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);

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

  • int field
  • int amount
  

public void add(int field,int amount)

     

根据日历的规则,将指定(签名)的时间量添加到给定的日历字段。

所以你可以这样做:

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等。请参阅链接。

注意:add()将自动处理在你没有检查条件时添加基于字符串的方法没有意义的小时数的情况,例如。加上20小时到11:00:00,第二天7:00:00,除非你想要31:00:00。