Java时间转换

标签 java time

Scanner input2 = new Scanner(System.in);
System.out.println("Time to be converted to hh:mm:ss: ");
int time = input2.nextInt();
int hr = 0, min = 0, sec = 0;
if(time >= 3600)
{
   hr = time/3600;
   time = time%3600;
}
if(time >= 60)
{
    time = time%3600;
    min = time/60;
}
if (time <  60)
{
    sec  +=  time;
}
System.out.println(hr+":"+min+":"+sec);

所以,我的问题是,只要秒大于 3719,分钟和小时就停止递增。

示例:

3719
1:1:59

3720
1:1:0

7325
1:1:0

我还尝试了一种不同的算法,使用减法而不是模

Scanner input2 = new Scanner(System.in);
System.out.println("Time to be converted to hh:mm:ss: ");
int time = input2.nextInt();
int hr = 0, min = 0, sec = 0;
if(time >= 3600)
{
   hr ++;
   time -=3600;
}
if(time >= 60)
{
    time -= 60;
    min ++;
}
if (time <  60)
{
    sec  +=  time;
}
System.out.println(hr+":"+min+":"+sec);

最佳答案

这是因为您使用 3600 作为 min 的模数:

if (time >= 60) {
    min = time / 60;
    time = time % 3600;
}

但必须使用60,将其更改为:

public static void main(String[] args) {
    Scanner input2 = new Scanner(System.in);
    System.out.println("Time to be converted to hh:mm:ss: ");
    int time = input2.nextInt();
    int hr = 0, min = 0, sec = 0;
    if (time >= 3600) {
        hr = time / 3600;
        time = time % 3600;
    }
    if (time >= 60) {
        min = time / 60;
        time = time % 60;
    }
    if (time < 60) {
        sec += time;
    }
    System.out.println(hr + ":" + min + ":" + sec);
}

它会按照你的预期工作。

在这里查看http://ideone.com/unTQTW

关于Java时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39185280/

相关文章:

java - JPA - 设置双向关系 -> 从 OneToMany-Collection 加载所有元素的开销很大吗?

python - Django admin datetime `now` 按钮选择正确的本地时间,但服务器时间错误

Python 文本文件之间的日期/时间转换

python - 如何从 df 中删除特定年份

java - 安卓工作室 : connecting to MongoDB server with Mongo Java Driver

java - 我可以在 Scala 中打印传递给类函数的案例类参数吗?

android - System.currentTimeMillis() 返回错误的日期

javascript - 以时间计算(JS),时间格式为HHMM

java - 给定一个项目列表(不同类型),我如何将它们分开,以便每个组只包含相同类型的项目

java - Hibernate、iBatis、Java EE 或其他 Java ORM 工具