простая Java-программа, которая позволяет вводить 2 формата времени и считать разницу во времени - PullRequest
2 голосов
/ 06 октября 2011

Я хотел бы знать, как сделать простую программу где пользователь может указать 2 формата ввода времени (чч: мм) --- и получить истекшее время в качестве вывода.

программа запустится и позволит пользователю записывать ввод времени. может быть, простая программа, запускаемая из командной строки.

Пример, когда программа запускается:

  1. Пожалуйста, напишите / введите время начала!
    (например: пользователь будет писать в формате «чч: мм», как; 19.14)

  2. Запись / ввод времени окончания: (пользователь будет писать в формате «чч: мм», как; 23.40)

  3. Вывод будет выглядеть так: «Вы прошли чч (час)»

Я был в Google - о вещах в формате времени, или даже использовать простой формат, но я просто как-то запутался, пытаясь реализовать ввод в классы или что бы то ни было.

Кто-нибудь может помочь мне решить эту проблему?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 06 октября 2011

Я думаю, вы ищете это ..

import java.text.*;

    import java.util.*;


    public class DifferenceBetweenTimes {

        public static void main(String[] args) throws InterruptedException{





            Date d1 = new Date( 15, 10, 44);
                   Date d2 = new Date( 15, 30, 44);



            SimpleDateFormat dfm = new SimpleDateFormat ("HH:mm:ss") ;



            System.out.println(dfm.format(d1));

            System.out.println(dfm.format(d2));



           long timeDiff = ( Math.abs( d1.getTime() - d2.getTime()) / 1000 ) / 60;

             System.out.println(timeDiff); 



        }

    }
0 голосов
/ 06 октября 2011

Я не думаю, что ваш вызов конструктора Date делает то, что вы думаете.

Три аргумента arg для date:

Date (int year, int month,int date) Устаревший.Начиная с версии 1.1 JDK, заменяется на Calendar.set (год + 1900, месяц, дата) или GregorianCalendar (год + 1900, месяц, дата).

Попробуйте это:

Дата (int year, int month, int date, int hrs, int min, int sec) Устаревший.Начиная с версии 1.1 JDK, заменяется на Calendar.set (год + 1900, месяц, дата, часы, минуты, секунды) или GregorianCalendar (год + 1900, месяц, дата, часы, минуты, секунды)

Есливсе, что вас волнует, это прошедшее время, затем добавьте одинаковую дату для обоих, затем вычтите.

попробуйте это:

Дата d1 = новая Дата (15, 10, 44);System.out.println (d1.toString ());

посмотреть, какая дата выдается.

  • Если это домашняя работа, инструктор, вероятно, нахмурится при использовании любогометодов классов даты / времени API.

import java.util.Date;

открытый класс SomeOnesHomeWork {

public final int secondsInMinute = 60;
public final int millisecondsPerSecond =1000;
public final int milliPerMinute = secondsInMinute * millisecondsPerSecond;

public int convertMillisecondsToMinutes(long milliseconds){
     return (int) (milliseconds / milliPerMinute);
}

public int differenceInMinutes(long beginTime,long endTime){
    return convertMillisecondsToMinutes(endTime - beginTime);
}

public static void main(String[] argc){

    //Make the dates
    Date d1 = new Date(1999,12,31,23,45,44);
    Date d2 = new Date(1999,12,31,23,59,59);

    //We Could use Static methods, probably should
    SomeOnesHomeWork aHomeWorkObject = new SomeOnesHomeWork();
    System.out.println("The time between two dates in minutes: "
        + aHomeWorkObject.differenceInMinutes(
                d1.getTime(),d2.getTime()));
}

}

0 голосов
/ 06 октября 2011

Вы должны использовать Joda-Time API.

...