0

私はこのコードを持っています

package com.lestijden;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {

TextView Datum;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Datum = (TextView) findViewById(R.id.Tijd);

    Date today = Calendar.getInstance().getTime();
    SimpleDateFormat Formatter = new SimpleDateFormat("km");
    String folderName = Formatter.format(today);

    int result = folderName.compareTo("0");


    if (result > 815 ){
        double data = new Double("905") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }
    else if (result > 905){
        double data = new Double("955") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }

    else if (result > 955){
        double data = new Double("1045") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }

    else if (result > 1045){
        double data = new Double("1100") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }

    else if (result > 1100){
        double data = new Double("1150") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }
    else if (result > 1150){
        double data = new Double("1240") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }
    else if (result > 1240){
        double data = new Double("1310") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }
    else if (result > 1310){
        double data = new Double("1400") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }
    else if (result > 1400){
        double data = new Double("1450") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }
    else if (result > 1450){
        double data = new Double("1505") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }
    else if (result > 1505){
        double data = new Double("1555") - new Double(folderName); 
        Datum.setText(Double.toString(data));
    }
    else if (result > 1555){
        double data = new Double("1645") - new Double(folderName); 
        Datum.setText(Double.toString(data));

    }
}
}

私はそれを次のように動作させたい: 時間が例えば 14:01 の場合。(1401) 次に、計算 1450 から現在の時刻を差し引く必要があります (1401)。出力(49)をテキストビューに表示します。

テキストビューに出力が表示されません。どうすればこれを解決できますか?

4

2 に答える 2

3

文字列を時間オブジェクトに変換する必要があります。これらを2回減算し、結果を文字列に変換します。

java.text.DateFormat df = new java.text.SimpleDateFormat("hh:mm");
java.util.Date date1 = df.parse("14:01");
java.util.Date date2 = df.parse("14:50");
long diff = date2.getTime() - date1.getTime();

差分はミリ秒単位の時間差になります。

于 2013-01-26T14:29:12.703 に答える
1

String.compareTo(String otherString)メソッドは、javadocsによると、2つの文字列を辞書式に比較し、主にリストの順序付けに使用されます。必要なのは@RvdKが作成したものですが、date2はdate1の後にある可能性があるため、date1-date2の絶対値を使用します。

Math.abs(date2.getTime() - date1.getTime());

ポイント制のためコメントとして投稿できませんでした:/

于 2013-01-26T15:11:14.300 に答える