2011-08-30 12 views
9

を書く私が使用している:私は、現在の時刻を取得しは、現在の時刻に一定の時間を追加し、

Calendar c = Calendar.getInstance(); 

いると、私は必要なもの

String sHour = c.get(Calendar.HOUR_OF_DAY) 
String sMinute = c.get(Calendar.MINUTE) 

は、例えば追加することです1時間10分 - それを変数に格納し、Substractも10分と言い、それを別の変数として保存します。 (私はTextViewの両方でそれらを使用する必要があります)

私はadd();メソッドをAndroidドキュメントで見ましたが、どのように動作するのかわかりません。  ありがとう

答えて

24

投稿したコードはコンパイルされません。Calendar.get()は文字列を返しません。また、カレンダーは変更可能であることに注意してください。addの各呼び出しが新しいカレンダーを返すようなものではありません。したがって、別の値に別の変数を追加するたびに、新しいインスタンスを作成する必要があります。たとえば:

Calendar now = Calendar.getInstance(); 

Calendar tmp = (Calendar) now.clone(); 
tmp.add(Calendar.HOUR_OF_DAY, 1); 
tmp.add(Calendar.MINUTE, 10); 
Calendar nowPlus70Minutes = tmp; 

tmp = (Calendar) now.clone(); 
tmp.add(Calendar.MINUTE, -10); 
Calendar nowMinus10Minutes = tmp; 

可能であれば、私はを強くは、あなたの代わりにカレンダー/日のJoda Timeを使用することをお勧めします - それははるかに優れたAPIです。しかし、それに含まれているタイムゾーンをトリミングして、開始するのが速く、APKでオーバーヘッドが少なくなるようにすることもできます。

+0

は完全に、これも正しいアプローチであるありがとう –

4

System.currentTimeMillis() + INTERVALに電話することができます。

public static final long INTERVAL = 1000 * 60 * 60 * 24; // 1 day 
+1

おかげで私を助け:INTERVALは、例えばミリ秒単位の間隔(ある

。 – jackal

関連する問題