2011-08-30 30 views
9

Tôi đang sử dụng:Thêm một số tiền nhất định của thời gian để một thời gian hiện tại và viết nó

Calendar c = Calendar.getInstance(); 

mà tôi nhận được một thời gian hiện tại,

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

gì tôi cần là thêm ví dụ 1 Giờ 10 phút - lưu trữ nó trong một biến và cũng Substract chúng ta hãy nói 10 phút và lưu nó như là một biến khác. (Tôi cần phải sử dụng cả hai trong một số TextView)

Tôi đã xem phương pháp add(); trong tài liệu Android nhưng tôi dường như không hiểu cách hoạt động của nó.   Cảm ơn

Trả lời

24

Mã bạn đã đăng sẽ không biên dịch, vì Calendar.get() không trả lại chuỗi. Bạn cũng nên lưu ý rằng lịch có thể thay đổi - không giống như mỗi cuộc gọi đến add trả lại lịch mới. Vì vậy, bạn sẽ cần phải tạo một cá thể mới mới mỗi khi bạn muốn biến riêng biệt cho một giá trị khác. Ví dụ:

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; 

Nếu có thể, tôi muốn mạnh khuyên bạn nên sử dụng Joda Time thay vì Lịch/ngày - đó là một xa API vượt trội. Tuy nhiên, bạn có thể muốn cắt các múi giờ đi kèm với nó, để nó bắt đầu nhanh hơn và chi phí thấp hơn trong gói ứng dụng của bạn.

+0

hoàn hảo đã giúp tôi, Cảm ơn –

4

Bạn chỉ cần gọi System.currentTimeMillis() + INTERVAL.

đâu INTERVAL là khoảng thời gian trong mili giây (ví dụ:

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

Cảm ơn bạn này cũng là cách tiếp cận đúng. – jackal

Các vấn đề liên quan