2012-04-13 2 views
5

アンドロイドの開発に時差のようなものがあるかどうかを知る必要がありますか? C#でアンドロイド開発にTimeSpanのようなものがありますか?

のようなものがあり、私は2つの方法でそれを使用したい:

  1. は、タイムスパンを生成し、例えば追加しますその後、数分と、2つの日時の間にタイムスパンを生成
  2. スパン全体を表示する(アンドロイドでのDateTimeの等価は何ですか?)

答えて

5
public long addSeconds(long dt,int sec) //method to add seconds in time 
{ 

    Date Dt = new Date(dt); 
    Calendar cal = new GregorianCalendar(); 

    SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
    sdf.setCalendar(cal); 
    cal.setTimeInMillis(Dt.getTime()); 
    cal.add(Calendar.SECOND, sec); 
    return cal.getTime().getTime(); 

} 

パスの日付と時間、それが変更された時間を返します...

3

残念ながら、そこにはTimeSpanは、利用可能なJavaでまだネイティブクラスと同様ませんが、あなたは数行のコードでこれを達成することができます。秒で

Calendar startDate = getStartDate(); 
Calendar endDate = getEndDate(); 

long totalMillis = endDate.getTimeInMillis() - startDate.getTimeInMillis(); 
int seconds = (int) (totalMillis/1000) % 60; 
int minutes = ((int)(totalMillis/1000)/60) % 60; 
int hours = (int)(totalMillis/1000)/3600; 
2

アンドロイドはDateUtilsを持っている、方法「formatElapsedTimeは、」あなたはそれを右の入力を与えた場合に何が必要ありません。

1

簡単に "TimeSpan"をミリ秒で得ることができます。ミリ秒をフォーマットされたものに変換するには、このような関数で少し速くて洗練された計算を行うことができます。

public static String GetFormattedTimeSpan(final long ms) { 
    long x = ms/1000; 
    long seconds = x % 60; 
    x /= 60; 
    long minutes = x % 60; 
    x /= 60; 
    long hours = x % 24; 
    x /= 24; 
    long days = x; 

    return String.format("%d days %d hours %d minutes %d seconds", days, hours, minutes, seconds); 
}