Tôi cố gắng để làm tính toán ngày giữa 2 ngày như sau:(Java/Android) Tính ngày giữa 2 ngày và trình bày kết quả trong một định dạng cụ thể
- Lấy ngày hiện tại
- Lấy khứ hay tương lai ngày
- Tính chênh lệch giữa số không. 1 và không. 2
- hiện ngày theo định dạng sau
- Nếu kết quả là trong quá khứ (2 ngày trước) hoặc trong tương lai (trong 2 ngày)
- Format sẽ: ngày, tuần, tháng, năm
Tôi đã thử các cách khác nhau nhưng không thể đạt được kết quả tôi muốn ở trên. Tôi đã phát hiện ra rằng Android DatePicker hộp thoại chuyển đổi ngày thành Số nguyên. Tôi chưa tìm được cách để tạo widget DatePicket để trả về biến ngày thay vì số nguyên.
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, **int** year,
**int** monthOfYear, **int** dayOfMonth) {
enteredYear = year;
enteredMonth = monthOfYear;
enteredDay = dayOfMonth;
}
};
Tôi đã cố chuyển đổi ngày hệ thống thành Số nguyên, dựa trên ở trên, nhưng điều này không thực sự hiệu quả khi tính toán ngày giữa 2 ngày.
private void getSystemDate(){
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
systemYear = mYear;
mMonth = c.get(Calendar.MONTH);
systemMonth = mMonth + 1;
mDay = c.get(Calendar.DAY_OF_MONTH);
systemDay = mDay;
}
ints sẽ không hoạt động để tính toán differenc e giữa các ngày. Bạn sẽ cần phải sử dụng một thời gian dài (như AedonEtLIRA đã nói). – jahroy
Đó là vấn đề tôi gặp phải - theo mặc định, DatePicker trong Android chuyển đổi ngày thành số nguyên, như đoạn mã trên cho thấy. – striders
Nó không ngay lập tức có ý nghĩa với tôi làm thế nào bạn có thể sử dụng một int để đại diện cho một ngày. Trừ khi Android java là khác nhau, bạn không thể đại diện cho một dấu thời gian như là một int vì giá trị int tối đa là không đủ lớn. Dấu thời gian rất lớn ... như hàng tỷ tỷ và hàng nghìn tỷ. – jahroy