CACalendar* CACalendar::create(time_t time) { CACalendar* cal = CACalendar::create(); if (cal) { cal->setCalendar(time); } return cal; }
CACalendar* CACalendar::create(int year, int month, int day) { CACalendar* cal = CACalendar::create(); if (cal) { cal->setCalendar(year, month, day); } return cal; }
CACalendar* CACalendar::create() { CACalendar* cal = new CACalendar(); if (cal) { cal->autorelease(); } return cal; }
CCString* CADatePickerView::titleForRow(CAPickerView* pickerView, unsigned int row, unsigned int component) { char buff[256] = {0}; switch (m_eMode) { case CADatePickerModeCountDownTimer: if (component == 0) { // hour // sprintf(buff, "%d小时", row); } else { // min // sprintf(buff, "%d分钟", row); } break; case CADatePickerModeDate: if (component == 0) { // years // sprintf(buff, "%d年", row + 1900); } else if (component == 1) { // month // sprintf(buff, "%d月", row + 1); } else { // day // sprintf(buff, "%d日", row + 1); } break; case CADatePickerModeDateAndTime: if (component == 0) { // date CACalendar* cal = CACalendar::create(mktime(&m_tTM)); int day = row + 1; int dayOfYear = cal->dayOfYear(); cal->addDay(day - dayOfYear); int week = cal->dayOfWeek(); int month = cal->monthOfYear(); int date = cal->dayOfMonth(); const char* week_s[] = {"日","一","二","三","四","五","六"}; sprintf(buff, "%d月%d日 周%s", month, date, week_s[week]); } else if (component == 1) { // hour sprintf(buff, "%02d", row); } else { // minutes sprintf(buff, "%02d", row); } break; case CADatePickerModeTime: if (component == 0) { // hour // sprintf(buff, "%02d", row); } else { // minutes // sprintf(buff, "%02d", row); } break; default: break; } return CCString::create(std::string(buff)); }
void CADatePickerView::didSelectRow(CAPickerView* pickerView, unsigned int row, unsigned int component) { switch (m_eMode) { case CADatePickerModeCountDownTimer: if (component == 0) { // hour m_tTM.tm_hour = row; } else { // min m_tTM.tm_min = row; } break; case CADatePickerModeDate: { if (component == 0) { // years m_tTM.tm_year = row; int tem_day = CACalendar::create()->_dayCountOfMonth(m_tTM.tm_year+1900,m_tTM.tm_mon); if (m_tTM.tm_mday>tem_day) { m_tTM.tm_mday = 1; m_pPickerView->reloadComponent(0,2); }else{ m_pPickerView->reloadComponent(m_tTM.tm_mday-1,2); } } else if (component == 1) { m_tTM.tm_mon = row; int tem_day = CACalendar::create()->_dayCountOfMonth(m_tTM.tm_year+1900,m_tTM.tm_mon); if (m_tTM.tm_mday>tem_day) { m_tTM.tm_mday = 1; m_pPickerView->reloadComponent(0,2); }else{ m_pPickerView->reloadComponent(m_tTM.tm_mday-1,2); } } else { m_tTM.tm_mday = row+1; } break; } case CADatePickerModeDateAndTime: if (component == 0) { // date CACalendar* cal = CACalendar::create(); int month, date; cal->dateByDayOfYear(m_tTM.tm_year, row, month, date); m_tTM.tm_mon = month; m_tTM.tm_mday = date; m_tTM.tm_mon--; } else if (component == 1) { // hour m_tTM.tm_hour = row; } else { // minutes m_tTM.tm_min = row; } break; case CADatePickerModeTime: if (component == 0) { // hour m_tTM.tm_hour = row; } else { // minutes m_tTM.tm_min = row; } break; default: break; } if (m_pDelegate) { m_pDelegate->didSelectRow(m_tTM); } }
const char* CADatePickerView::titleForRow(CAPickerView* pickerView, unsigned int row, unsigned int component) { char buff[256] = {0}; switch (m_eMode) { case CADatePickerModeCountDownTimer: if (component == 0) { // hour sprintf(buff, "%d\u5c0f\u65f6", row); } else { // min sprintf(buff, "%d\u5206\u949f", row); } break; case CADatePickerModeDate: if (component == 0) { // years sprintf(buff, "%d\u5e74", row + 1900); } else if (component == 1) { // month sprintf(buff, "%d\u6708", row + 1); } else { // day sprintf(buff, "%d\u65e5", row + 1); } break; case CADatePickerModeDateAndTime: if (component == 0) { // date CACalendar* cal = CACalendar::create(m_tTM.tm_year+1900,m_tTM.tm_mon,m_tTM.tm_mday); int day = row; int dayOfYear = cal->dayOfYear(); cal->addDay(day - dayOfYear); int week = cal->dayOfWeek(); int month = cal->monthOfYear(); int date = cal->dayOfMonth(); // const char* week_s[] = {"日","一","二","三","四","五","六"}; const char* week_s[] = {"\u65e5", "\u4e00", "\u4e8c", "\u4e09", "\u56db", "\u4e94", "\u516d"}; sprintf(buff, "%d\u6708%d\u65e5 \u5468%s", month, date, week_s[week]); } else if (component == 1) { // hour sprintf(buff, "%02d", row); } else { // minutes sprintf(buff, "%02d", row); } break; case CADatePickerModeTime: if (component == 0) { // hour sprintf(buff, "%02d", row); } else { // minutes sprintf(buff, "%02d", row); } break; default: break; } static std::string ret; ret = std::string(buff); return ret.c_str(); }
void CADatePickerView::didSelectRow(CAPickerView* pickerView, unsigned int row, unsigned int component) { switch (m_eMode) { case CADatePickerModeCountDownTimer: if (component == 0) { // hour m_tTM.tm_hour = row; } else { // min m_tTM.tm_min = row; } break; case CADatePickerModeDate: { if (component == 0) { // years m_tTM.tm_year = row; m_tTM.tm_mon = 0; m_tTM.tm_mday = 1; m_pPickerView->reloadComponent(1); m_pPickerView->reloadComponent(2); } else if (component == 1) { // month m_tTM.tm_mon = row; m_tTM.tm_mday = 1; m_pPickerView->reloadComponent(2); } else { // day m_tTM.tm_mday = row + 1; } // fault tolerant time_t t = mktime(&m_tTM); m_tTM = *localtime(&t); break; } case CADatePickerModeDateAndTime: if (component == 0) { // date CACalendar* cal = CACalendar::create(); int month, date; cal->dateByDayOfYear(m_tTM.tm_year, row + 1, month, date); m_tTM.tm_mon = month; m_tTM.tm_mday = date; time_t t = mktime(&m_tTM); m_tTM = *localtime(&t); } else if (component == 1) { // hour m_tTM.tm_hour = row; } else { // minutes m_tTM.tm_min = row; } break; case CADatePickerModeTime: if (component == 0) { // hour m_tTM.tm_hour = row; } else { // minutes m_tTM.tm_min = row; } break; default: break; } if (m_pDelegate) { m_pDelegate->didSelectRow(m_tTM); } }