示例#1
0
CACalendar* CACalendar::create(time_t time)
{
    CACalendar* cal = CACalendar::create();
    if (cal) {
        cal->setCalendar(time);
    }
    return cal;    
}
示例#2
0
CACalendar* CACalendar::create(int year, int month, int day)
{
    CACalendar* cal = CACalendar::create();
    if (cal) {
        cal->setCalendar(year, month, day);
    }
    return cal;        
}
示例#3
0
CACalendar* CACalendar::create()
{
    CACalendar* cal = new CACalendar();
    if (cal) {
        cal->autorelease();
    }
    return cal;
}
示例#4
0
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();
}
示例#7
0
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);
    }
}