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)); }
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(); }