-4

ランナーとそのタイムの表を作成しています。モジュロを使用して、前のランナーからの時間を分と秒で見つける必要があります。最初の 2 つのレコードは

ランナー:198
分: 29
秒: 05

走者:419
分: 30
秒: 01

1番走者に遅れ?

これまでの私のコードは次のとおりです。

import java.io.*;
import java.text.*;
public class read3
{
public static void main(String[] args)throws IOException
{
    DataInputStream in=new DataInputStream(new FileInputStream("c:\\java\\chapter13\\sheet2\\program2.jdat2"));
    int id;
    int mins;
    int secs;//,num3;
    double calc=0,calc2=0;
    char chr;
    double tcalc=0;
    double t1=0,t2=0,t3=0;
    NumberFormat money=NumberFormat.getCurrencyInstance();
    System.out.println("Runner\tTotal  \tTotal  \tTime");
    System.out.println("Number\tMinutes\tSeconds\tBehind\n");
    try
    {
        while(true)
        {
            id=in.readInt();
            in.readChar();
            mins=in.readInt();
            in.readChar();
            secs=in.readInt();
            in.readChar();

            System.out.println(id+"\t      "+mins+"\t    "+secs+"\t"+calc);
        }
    }
    catch(EOFException e)
    {
        //Hi
    }
    in.close();
}
}

モジュロを使用して分/秒 (個別の変数) を見つけるための方程式を知る必要があるだけです。誰でも助けることができますか?

4

2 に答える 2

3
int time1=nbMinutes1*60+nbSeconds1;
int time2=nbMinutes2*60+nbSeconds2;

int differenceInMinutes = (time2-time1)/60;
int differenceinSeconds = (time2-time1)%60;

編集:コードに適用するには、次のようにします。

    Integer duration=null;

    while(true)
    {
        id=in.readInt();
        in.readChar();
        mins=in.readInt();
        in.readChar();
        secs=in.readInt();
        in.readChar();

        Integer newDuration=60*mins+secs;

        //duration is null for the first one.
        if(duration!=null){
          System.out.println(id+"\t      "+(newDuration-duration)/60+"\t    "+secs+"\t"+(newDuration-duration)%60);
        }

        duration = newDuration;
    }
于 2013-05-06T18:15:04.480 に答える