2011-03-02 14 views
6

मैं समय अंतर की गणना करना चाहता हूं। मेरे पास तीन एडिटटेक्स हैं, मैं एचएच: एमएम प्रारूप में पहले दो संपादनों में समय इनपुट करना चाहता हूं। और उसके बाद समय अंतर की गणना करें और परिणाम तीसरे संपादन क्षेत्र पर उसी प्रारूप में दिखाएगा। तो तिथि परिवर्तन, समय अंतर यह है कि अनुसार गणना करेगा यानीदिनांक परिवर्तन के संबंध में दो समय फ़ील्ड के बीच समय अंतर की गणना कैसे करें

तो पहली बार = 23:00 और दूसरी बार = 01:00

तो

, समय अंतर = 2:00 घंटे

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); 

    } 

} 

मैं इस कोड निष्पादित, लेकिन स्रोत के रूप में त्रुटि देता है नहीं found.I लगता getDifference method.Please में त्रुटि किसी अन्य तर्क

+1

मुझे नहीं पता अपनी त्रुटि के बारे में जानें, लेकिन 'new SimpleDateFormat (" hh: mm ")' और 'new SimpleDateFormat (" HH: MM ")' के लिए देखें; आप शायद '" एचएच: मिमी "चाहते हैं। –

उत्तर

28

समय अंतर देना निम्नलिखित कोड करके की जाती है:

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); 

संपादित करें:

DATE1 और DATE2, Date वस्तुओं रहे हैं यदि आप EditText तो आप अपने पाठ में Date वस्तु के लिए निम्न कोड का उपयोग करके परिवर्तित कर सकते हैं है,

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

दिनांक 2 और दिनांक 1 का क्या रूप है? क्या वे टेक्स्ट संपादित कर रहे हैं .. अगर हमारे पास दो संपादन टेक्स्ट हैं तो समय की तुलना करें। ? –

संबंधित मुद्दे