2013-03-21 45 views
5

Tôi đã tạo Lịch tùy chỉnh. Nó hiển thị ngày của thiết bị là ngày hiện tại. Nhưng yêu cầu của tôi là hiển thị 12 ngày trước Ngày tháng là ngày hiện tại. ví dụ: Hôm nay là 21 nhưng tôi muốn lịch của mình hiển thị 9. Tôi cũng muốn làm điều tương tự với năm nữa. Tôi biết cách lấy ngày hiện tại. Tôi đang sử dụng mã này.Hiển thị 12 ngày trước Ngày tháng là Ngày hiện tại

_calendar = Calendar.getInstance(Locale.getDefault()); 
month = _calendar.get(Calendar.MONTH) + 1; 
year = _calendar.get(Calendar.YEAR); 
Log.d(tag, "Calendar Instance:= " + "Month: " + month + " " + "Year: " + year); 

mã mới của tôi là

_calendar = Calendar.getInstance(Locale.getDefault()); 
month = _calendar.get(Calendar.MONTH) + 1; 
year = _calendar.get(Calendar.YEAR); 
Log.d(tag, "Calendar Instance:= " + "Month: " + month + " " + "Year: " + year); 
/*_calendar.add(Calendar.DAY_OF_YEAR, -12);*/ 
_calendar.roll(Calendar.DAY_OF_MONTH, -12); 
_calendar.roll(Calendar.MONTH, -12); 
Calendar _calendar=Calendar.getInstance(); 

Trả lời

0

Trong nhiều ngôn ngữ NOW là một hàm trả về một DateTime thời gian khi gọi. Bạn có thể add số ngày âm (-) âm và nó sẽ trả về những gì bạn cần. Tôi luôn luôn quên rằng, suy nghĩ bạn chỉ có thể thêm một tích cực, nhưng đó là không chính xác. ;-)

Hy vọng điều đó sẽ hữu ích.

1

Hãy thử:

_calendar.roll(Calendar.DAY_OF_YEAR, -12); 
_calendar.roll(Calendar.YEAR, -12); 

này sẽ roll trở lại những ngày 12, và sau đó là năm bởi 12.

+0

Xin chào Tushar, Mã này không hoạt động đối với tôi .. – Prinkal

+0

@Prinkal lỗi là gì? – Tushar

+0

Không có lỗi, Nó hiển thị ngày hiện tại. – Prinkal

0

Hãy thử nó.

_calendar = Calendar.getInstance(Locale.getDefault()); 
_calendar.setTime(new Date()); 
_calendar.add(Calendar.DATE, -12); 
Date twelveDaysAgo = _calendar.getTime(); 
0

Điều này sẽ chuyển ngày trở lại 12 ngày, cũng sẽ thay đổi tháng/năm nếu cần.

_calendar.add(Calendar.DAY_OF_YEAR, -12); 
Các vấn đề liên quan