Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Tính toán thời điểm Alarm sẽ kêu tiếp theo có kết hợp ngày nghỉ lễ

    Chào các bạn,
    Hiện tại mình đang làm chức năng Alarm giống như các Alarm khác, chỉ có điều giờ thêm phần set Alarm cho các ngày nghỉ lễ.
    Vấn đề của mình hiện tại là đang nằm ở giải pháp để tính ra ngày kế tiếp sẽ hiển thị Alarm ( Sau khi Alarm hiển thị lên rồi, sẽ hiển thị thời
    điểm kế tiếp).
    Nếu không có ngày nghĩ lễ thì mình tham khảo Open Source Alarm Klock là OK, tuy nhiên khi thêm ngày nghỉ vào mình
    đang bị bí giải pháp để tính.
    Code của Alarm Klock cho phần tính ra thời điểm kêu tiếp theo là:
    Mã:
    private void findNextOccurrence() {
    		Calendar now = Calendar.getInstance();
    
    		// If this hour/minute/second has already occurred today, move to
    		// tomorrow.
    		if (calendar.before(now)) {
    			calendar.add(Calendar.DATE, 1);
    		}
    
    		if (calendar.before(now)) {
    			throw new IllegalStateException("Inconsistent calendar.");
    		}
    
    		// If there are no repeats requested, there is nothing left to do.
    		if (daysOfWeek.equals(Week.NO_REPEATS)) {
    			return;
    		}
    
    		// Keep incrementing days until we hit a suitable day of the week.
    		for (int i = 0; i < Day.values().length; ++i) {
    			Day alarmDay = Week.calendarToDay(calendar
    					.get(Calendar.DAY_OF_WEEK));
    			if (daysOfWeek.hasDay(alarmDay)) {
    				return;
    			}
    			calendar.add(Calendar.DATE, 1);
    		}
    
    		throw new IllegalStateException(
    				"Didn't find a suitable date for alarm.");
    	}
    Giờ mình đã thiết lập thêm ngày nghỉ lễ, vậy mình sẽ phải tính như thế nào để cho ra thời điểm tiếp theo Alarm kêu?
    Các bạn giúp mình với.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Done! Đã có giải pháp.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •