2009-11-16 35 views
12

Vì vậy, tôi đã triển khai UIDatepicker trong một trong các ứng dụng của tôi để lên lịch và tự động teleconferences ... mọi thứ đã sẵn sàng để đi trừ khi thử nghiệm tôi nhận thấy rằng khi ngày đó kéo dài từ ngày 26 tháng 12 đến ngày 27 tháng 12 2010.Bộ chọn ngày của iPhone sẽ chuyển sang năm 2010 vào ngày 27 tháng 12?

Tôi thậm chí đã chuyển tiếp sang năm 2011 ... và thay đổi khi ngày 25 tháng 12 thay đổi thành ngày 26 .... nhưng chờ ... vào năm 2012, nó chính xác sẽ chuyển sang ngày 31 tháng 12 - ngày 1 tháng 1 .. Và sau đó nó trở lại 29-30 trong năm 2013. Có một số loại hiện tượng thiên văn mà tôi không biết về việc đi hay Apple chạy trên một số lịch Heechee điên mà tôi không biết? Ứng dụng lịch hoạt động chính xác ...

Lời giải thích có khả năng nhất là tôi thiếu thứ gì đó hiển nhiên đến mức tôi sẽ tát bản thân mình khi tôi nhận ra. Nhưng hey, tôi đã không ngủ ... wow Tôi không nhớ nếu nó được hai ngày hoặc ba. Hãy thương hại và giúp tôi ra khỏi đây.

CẬP NHẬT: Vì vậy, có thể nó không phải là điều đơn giản. Vẫn đang tìm kiếm câu trả lời ở đây! Tôi thực sự là người duy nhất đã trải qua điều này? Tôi sẽ đặt cược khi cuối tháng mười hai cuộn quanh, nhiều người hơn sẽ đạt cùng một rào cản.

CẬP NHẬT 2: Bất kỳ ai? Vẫn đang tìm kiếm, vẫn không tìm thấy ...

UPDATE3: Vẫn chưa tìm thấy giải pháp. Nào! Đây là một câu đố thú vị!

CẬP NHẬT 4: Vẫn không tìm thấy câu trả lời. Tôi đã gửi ứng dụng và nó hiện đang ở trong appstore. Vẫn muốn thấy sự cố này được giải quyết để tôi có thể cập nhật ứng dụng.

+0

Chỉ vì tò mò bạn đã đặt lịch nào cho UIDatePicker của mình? Bạn đang sử dụng currentCalendar hoặc autoupdatingCurrentCalendar? Tôi đoán một cái gì đó có thể sai ở đó. –

+0

Ý tưởng hay. Tuy nhiên, tôi chỉ thử cả hai người họ và cả hai đều lăn lộn trong cùng một ngày. Bất kỳ ý tưởng nào khác? – Taylor

+0

Bạn có sở hữu bất kỳ ứng dụng nào sử dụng thành phần đó không? Nó có hoạt động phù hợp với họ không? –

Trả lời

3

Có thể có sự cố này, khi bạn đang ở tuần cuối cùng của tháng và tuần còn lại ít hơn 7 ngày trong tháng hiện tại, có thể API được coi là tuần đầu tiên của tháng tiếp theo. Kể từ tháng 12 năm 2012 đã có 7 ngày trong tuần trước, không có vấn đề gì trong tháng đó.

Tôi đã gặp vấn đề tương tự ở đây và tôi đã giải quyết vấn đề đó.

- (int) currentWeekOfMonth 
{ 
    return CFCalendarGetOrdinalityOfUnit (
      CFCalendarCopyCurrent(), 
      kCFCalendarUnitWeek, 
      kCFCalendarUnitMonth, 
      [self absoluteTime]); 
} 

yêu cầu của tôi là hiển thị số tuần và tôi tính số tuần của tuần đầu tiên của tháng và thêm số tuần này vào tổng số tuần trong tháng.

int currentWeekNumberInYear = [_calendarInfo currentWeekOfYear]; 
int currentWeekNumberInMonth = [_calendarInfo currentWeekOfMonth]; 
currentWeekNumberInYear = currentWeekNumberInYear-currentWeekNumberInMonth +1; 
currentWeekNumberInYear = currentWeekNumberInYear<0 ? (NSInteger)[_calendarInfo weeksInMonth] ==5 ?49:48 : currentWeekNumberInYear; 

Tôi hy vọng nó sẽ hữu ích cho bạn.

+0

Ý tưởng tuyệt vời! Tôi đi kiểm tra nó trong mã của tôi và xem những gì sẽ xảy ra. – Taylor

+0

Điều này làm việc cho tôi! Cảm ơn đã giúp đỡ! – Taylor

3

Tắt chuỗi định dạng ngày được sử dụng để thiết lập NSDateFormatter đã gây ra lỗi này cho tôi.

"yyyy" tương ứng với năm có 4 chữ số, trong khi YYYY tương ứng với năm bắt đầu từ Chủ Nhật của tuần đầu tiên của năm. Tại sao bất cứ ai muốn điều này là đoán của bất cứ ai, và nó sẽ thực sự giúp đỡ nếu Apple cung cấp một liên kết đến danh sách của họ về định dạng specifiers, nhưng có bạn đi.

Chỉ cần đảm bảo chuỗi định dạng của bạn có thành phần năm theo chữ thường và phải được sắp xếp.

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