亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? timeutils.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
字號:
/*
 * Copyright (C) 2007 Funambol, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY, TITLE, NONINFRINGEMENT or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 * 02111-1307  USA
*/

#include "base/Log.h"
#include "base/timeUtils.h"
#include "vocl/constants.h"
#include <oleauto.h>

using namespace std;


//
// ------------------------------ DATE/TIME CONVERSIONS FUNCTIONS ------------------------------
//
/**
 * Variant time (double) -> System time ("YYYYMMDDThhmmssZ" or "YYYYMMDD")
 * The output value is a string. 
 *
 * @param stringDate   [OUT] the date returned in SystemTime format
 * @param doubleDate   the input date in variant time format
 * @param onlyDate     the input date in variant time format
 */
void doubleToStringTime(wstring& stringDate, const DATE doubleDate, bool onlyDate) {

    if (!doubleDate || doubleDate > LIMIT_MAX_DATE) {
        stringDate = L"";
        return;
    }

    SYSTEMTIME t;
    VariantTimeToSystemTime(doubleDate, &t);

    WCHAR date[20];
    wsprintf(date, TEXT("%i%02i%02i"), t.wYear, t.wMonth, t.wDay);
    if (!onlyDate) {
        wsprintf(&date[8], TEXT("T%02i%02i%02iZ"), t.wHour, t.wMinute, t.wSecond);
    }

    stringDate = date;
}



/**
 * String time ("YYYYMMDDThhmmssZ" or "YYYYMMDD") -> Variant time (double).
 *
 * @param dataString : the input string in System time format
 * @param date       : [OUT] the returned value into VariantTime format
 */
void stringTimeToDouble(const wstring& dataString, DATE* date) {

    WCHAR inputTime[20];
    SYSTEMTIME t;

    if (dataString.size() < 8) {
        *date = NULL;  // Error!
        return;
    }

    wsprintf(inputTime, dataString.c_str());

    wstring::size_type pos = dataString.find(L"-", 0);
    if (pos == wstring::npos) {
        // "yyyyMMdd"
        swscanf(inputTime, L"%4d%2d%2d", &t.wYear, &t.wMonth, &t.wDay);

        if (dataString.size() > 9 && dataString.size() < 17) {
            // "hhmmss"
            swscanf(&inputTime[9], L"%2d%2d%2d", &t.wHour, &t.wMinute, &t.wSecond);
        }
        else {
            t.wHour   = 0;
            t.wMinute = 0;
            t.wSecond = 0;
        }
    }
    else {
        // old format: "yyyy-MM-dd"
        swscanf(inputTime, L"%4d-%2d-%2d", &t.wYear, &t.wMonth, &t.wDay);
        t.wHour   = 0;
        t.wMinute = 0;
        t.wSecond = 0;
    }

    t.wMilliseconds = 0;
    t.wDayOfWeek    = 0;
    SystemTimeToVariantTime(&t, date);
}




/*
 * Return true if date passed is in format "yyyyMMdd" (or old format "yyyy-MM-dd").
 */
bool isAllDayFormat(const wstring& dataString) {

    if (dataString.size() == 8) {
        return true;
    }

    // Also support "yyyy-MM-dd" old format...
    wstring::size_type pos = dataString.find(L"-", 0);
    if (pos != wstring::npos) {
        return true;
    }
    else {
        return false;
    }
}



/**
 * Returns true if startdate = 00:00 and enddate = 23:59.
 * This is an all-day-event.
 */
bool isAllDayInterval(const DATE startdate, const DATE enddate) {

    SYSTEMTIME ststart, stend;
    VariantTimeToSystemTime(startdate, &ststart);
    VariantTimeToSystemTime(enddate,   &stend);
    
    bool ret = false;
    if (ststart.wHour == 0 && ststart.wMinute == 0 &&
        stend.wHour == 23  && stend.wMinute  == 59) {
        ret = true;
    }
    return ret;
}




/**
 * daysOfWeekMask -> string.
 * @return  a string with days of week formatted (like "SU MO TU FR"),
 *          based on the daysOfWeek mask passed.
 * @note    returns a new allocated string, must be freed by the caller.
 */
WCHAR* daysOfWeekToString(int l) {

    if (l<0 || l>128)
        return NULL;

    //SU MO TU WE TH FR SA
    WCHAR* ret = new WCHAR[22];
    wcscpy(ret, TEXT(""));

    if(l & winSunday)    wcscat(ret, TEXT("SU "));
    if(l & winMonday)    wcscat(ret, TEXT("MO "));
    if(l & winTuesday)   wcscat(ret, TEXT("TU "));
    if(l & winWednesday) wcscat(ret, TEXT("WE "));
    if(l & winThursday)  wcscat(ret, TEXT("TH "));
    if(l & winFriday)    wcscat(ret, TEXT("FR "));
    if(l & winSaturday)  wcscat(ret, TEXT("SA "));

    return ret;
}

/**
 * string -> dayOfWeekMask
 * Calculate the dayOfWeekMask based on the input string
 * of days (like "SU MO TU FR").
 */
int stringToDaysOfWeek(WCHAR* in) {
    int ret = 0;

    WCHAR* index;
    index = NULL;
    index = wcsstr(in, TEXT("SU"));
    if(index)
        ret += winSunday;

    index = NULL;
    index = wcsstr(in, TEXT("MO"));
    if(index)
        ret += winMonday;

    index = NULL;
    index = wcsstr(in, TEXT("TU"));
    if(index)
        ret += winTuesday;

    index = NULL;
    index = wcsstr(in, TEXT("WE"));
    if(index)
        ret += winWednesday;

    index = NULL;
    index = wcsstr(in, TEXT("TH"));
    if(index)
        ret += winThursday;

    index = NULL;
    index = wcsstr(in, TEXT("FR"));
    if(index)
        ret += winFriday;

    index = NULL;
    index = wcsstr(in, TEXT("SA"));
    if(index)
        ret += winSaturday;

    return ret;
}


int getWeekDayFromDate(DATE date) {

    if (!date || date > LIMIT_MAX_DATE) {  
        return 0;  // Error
    }

    SYSTEMTIME st;
    VariantTimeToSystemTime(date, &st);
    return (st.wDayOfWeek)*(st.wDayOfWeek);
}


/**
 * Returns true if input string is a day of week.
 */
bool isWeekDay(WCHAR* data) {

    bool ret = false;
    WCHAR* weekDay[] = {L"SU", L"MO", L"TU", L"WE", L"TH", L"FR", L"SA"};

    for(int i=0; i<7 ; i++) {
        if(!wcscmp(data, weekDay[i]))
            return true;
    }
    return ret;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区三区在线老狼| 国产毛片精品一区| 这里只有精品免费| 久久成人免费电影| 国产视频在线观看一区二区三区 | 亚洲日韩欧美一区二区在线| 丁香婷婷综合色啪| 亚洲欧洲精品成人久久奇米网| 精品sm捆绑视频| 国产精品亚洲午夜一区二区三区 | 精品88久久久久88久久久| 韩国女主播成人在线观看| 精品福利视频一区二区三区| 激情综合网最新| 亚洲精品亚洲人成人网| 制服视频三区第一页精品| 男女激情视频一区| 日韩码欧中文字| 欧美电影影音先锋| 成人av电影在线观看| 亚洲成av人影院| 国产欧美日韩激情| 91精品啪在线观看国产60岁| 国产精品亚洲а∨天堂免在线| 亚洲欧美国产三级| 久久久久久久久伊人| 欧美亚洲图片小说| 色综合色狠狠综合色| 欧美自拍偷拍一区| 粉嫩av亚洲一区二区图片| 亚洲第一av色| 一区二区三区在线播| 久久一区二区三区国产精品| 91国产成人在线| 色美美综合视频| www.av亚洲| 不卡一区二区中文字幕| 国产黄色精品网站| 国产综合色视频| 久久国产精品无码网站| 午夜日韩在线观看| 亚洲线精品一区二区三区八戒| 综合亚洲深深色噜噜狠狠网站| 国产亚洲人成网站| 久久网站热最新地址| 久久久久久久久久久99999| 91麻豆精品国产| www久久久久| 久久久久久黄色| 亚洲欧美在线视频| 亚洲精品福利视频网站| 一区二区三区日韩在线观看| 综合激情成人伊人| 亚洲妇女屁股眼交7| 亚洲一区二区视频在线观看| 亚洲一区在线看| 日本系列欧美系列| 福利一区福利二区| 一本大道久久a久久综合婷婷 | 9久草视频在线视频精品| 国产 欧美在线| 欧美日韩中文国产| 精品国产91亚洲一区二区三区婷婷| xnxx国产精品| 亚洲欧美视频在线观看视频| 亚洲电影一区二区三区| 不卡一区二区在线| 欧美午夜电影在线播放| 久久综合国产精品| 一区二区三国产精华液| 精品一区二区三区在线观看| gogogo免费视频观看亚洲一| 91麻豆精品国产91久久久使用方法| 欧美videofree性高清杂交| 国产精品蜜臀av| 久久成人精品无人区| 色婷婷久久一区二区三区麻豆| 欧美一区中文字幕| 欧美日韩成人综合天天影院| 欧美人与禽zozo性伦| 国产亚洲一本大道中文在线| 成人免费一区二区三区在线观看| 亚洲3atv精品一区二区三区| 国产一区二区不卡在线| 在线观看网站黄不卡| 亚洲国产电影在线观看| 国产高清在线观看免费不卡| 91香蕉视频污| 中文一区二区在线观看| 美女高潮久久久| 欧美精品自拍偷拍动漫精品| 日韩美女视频一区二区 | 91在线高清观看| 久久精品欧美一区二区三区不卡| 日本美女一区二区三区视频| 日本乱人伦一区| 亚洲亚洲人成综合网络| 91国内精品野花午夜精品| 综合久久一区二区三区| 福利视频网站一区二区三区| 久久久精品一品道一区| 国产一区二区美女| 日韩精品国产欧美| 91精品国产福利| 理论电影国产精品| 日本一区二区三区久久久久久久久不| 国产自产2019最新不卡| 国产亚洲欧美激情| 91在线免费视频观看| 中文字幕在线不卡视频| 91福利精品视频| 日本中文字幕一区二区视频 | 久久久无码精品亚洲日韩按摩| 国内成人自拍视频| 最新欧美精品一区二区三区| 欧美亚洲国产怡红院影院| 日韩高清不卡一区二区| 久久久久久影视| 色婷婷av一区二区| 麻豆成人av在线| 亚洲精品高清在线观看| 日韩欧美国产三级| 91国产免费观看| 国产一区二区三区免费看| 亚洲一区二区三区四区中文字幕| 日韩一区二区三| 在线免费观看视频一区| 久久99国产精品麻豆| 亚洲人成伊人成综合网小说| 69av一区二区三区| 色婷婷综合久久久久中文一区二区 | 日韩欧美激情一区| 91丝袜呻吟高潮美腿白嫩在线观看| 视频一区视频二区中文字幕| 国产欧美久久久精品影院| 91.麻豆视频| 欧美精品v国产精品v日韩精品| www.成人在线| 99久久国产综合精品色伊| 国产在线播放一区三区四| 奇米精品一区二区三区在线观看 | 日韩视频一区二区三区在线播放| 一本色道久久综合亚洲aⅴ蜜桃| 成人毛片老司机大片| 国内精品久久久久影院色| 秋霞成人午夜伦在线观看| 欧美激情艳妇裸体舞| 日本大香伊一区二区三区| 亚洲精品国产品国语在线app| 久久嫩草精品久久久精品| 欧美一区二区日韩一区二区| 欧美体内she精高潮| 欧美日韩美少妇| 精品国产一区二区亚洲人成毛片| 欧美一区二区三区电影| 精品国产乱码久久久久久久| 久久午夜国产精品| 一区在线观看免费| 五月天久久比比资源色| 蜜臀a∨国产成人精品| 国产电影一区二区三区| 97se亚洲国产综合自在线| 欧美日韩一本到| 国产日韩影视精品| 亚洲国产一区二区三区| 激情五月播播久久久精品| 99精品欧美一区二区蜜桃免费 | 国产麻豆精品在线| 91免费看视频| 精品国产91乱码一区二区三区 | 亚洲午夜视频在线| 青青国产91久久久久久 | 欧美国产精品久久| 日韩精品一二区| 国内精品免费**视频| a级精品国产片在线观看| 欧美日韩黄色影视| 欧美精品丝袜久久久中文字幕| 欧美一级久久久| 中文字幕一区二区三区不卡| 亚洲成av人片一区二区梦乃| 免费成人在线播放| www.亚洲色图| 欧美日韩国产精品成人| 国产精品入口麻豆九色| 日韩中文欧美在线| 国产成人精品免费视频网站| 91黄色激情网站| 久久久久国产精品麻豆| 最新国产成人在线观看| 国产一区二区三区观看| 日韩欧美国产综合| 日韩精品一级二级 | 日本亚洲天堂网| 欧美在线free| 亚洲激情第一区| 秋霞影院一区二区| 91精品国产综合久久婷婷香蕉| 亚洲美女视频一区| 在线观看av一区|