2011-03-02 19 views
6

Zaman farkını hesaplamak istiyorum. Üç EditTexts var, HH: MM biçimindeki ilk iki edittex zamanları girmek istiyorum. Ve sonra zaman farkını hesaplayın ve sonuç aynı formatta üçüncü edittext alanında görünecektir. tarih değişiklikleri, zaman farkı, uygun hesaplar yaniİki zaman dilimi arasındaki zaman farkının hesaplanması, tarih ile ilgili olarak

ise ilk kez = 23:00 ve ikinci zaman = o

01:00 zaman farkı = 02:00 Saat

public class TimeCalculate extends Activity { 

    private String mBlock; 
    private String mBlockoff; 
    private String mBlockon ; 

    // String mHours, mMinutes; 

    Date date1, date2; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     EditText blockoff = (EditText) findViewById(R.id.blockoff); 
     mBlockoff = blockoff.getText().toString(); 

     EditText blockon = (EditText) findViewById(R.id.blockon); 
     mBlockon = blockon.getText().toString(); 

     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm"); 

     try { 
      date1 = simpleDateFormat.parse(mBlockoff); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     try { 
      date2 = simpleDateFormat.parse(mBlockon); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     mBlock = getDifference(date1, date2); 
     EditText block = (EditText) findViewById(R.id.block); 
     block.setText(mBlock.toString()); 

    } 
public static String getDifference(Date startTime, Date endTime) { 

     if (startTime == null) 
      return "corrupted"; 
     Calendar startDateTime = Calendar.getInstance(); 
     startDateTime.setTime(startTime); 
     Calendar endDateTime = Calendar.getInstance(); 
     endDateTime.setTime(endTime); 
     long milliseconds1 = startDateTime.getTimeInMillis(); 
     long milliseconds2 = endDateTime.getTimeInMillis(); 
     long diff = milliseconds2 - milliseconds1; 
     /*int hours = (int)diff/(60 * 60 * 1000); 
     int minutes = (int) (diff/(60 * 1000)); minutes = minutes - 60 * hours; 
     long seconds = diff/(1000); */ 
     //timeDiff = DateUtils.formatElapsedTime(seconds); 

     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:MM"); 
     Date date = new Date(diff); 
     return simpleDateFormat.format(date); 

    } 

} 
Bu kodu idam değil, found.I getDifference method.Please de hata aşağıdaki kodla hesaplanır başka mantığına

+1

benim yok, Date nesnelerdir Hatanızı biliyorum, ancak 'yeni SimpleDateFormat ("ss: dd") 've' yeni SimpleDateFormat ("HH: MM") '; Muhtemelen "HH: mm" yi istiyorsun. –

cevap

28

Zaman Fark vermek düşünüyorum kaynağı olarak hata veriyor:

long difference = date2.getTime() - date1.getTime(); 
days = (int) (difference/(1000*60*60*24)); 
hours = (int) ((difference - (1000*60*60*24*days))/(1000*60*60)); 
min = (int) (difference - (1000*60*60*24*days) - (1000*60*60*hours))/(1000*60); 

DÜZENLEME: Eğer EditText sonra aşağıdaki kodu kullanarak Date nesneye Metninizi dönüştürebilirsiniz varsa

DATE1-DATE2 tarihleri ​​

DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); // Make sure user insert date into edittext in this format. 
    Date dateObject; 

    try{ 
    String dob=(tx.getText().toString()); 
    dateObject = formatter.parse(dob); 
    date = new SimpleDateFormat("dd/MM/yyyy").format(dateObject); 

    } 
+1

date2 ve date1 hangi formda? onlar metin düzenliyorlar .. zaman içeren iki editeText varsa nasıl karşılaştırılır. ? –

İlgili konular