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

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

?? utils.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
          if (position + 1 >= s.length()) {
            position = std::wstring::npos;
            break;
          }
          position = position + 1;
      position = s.find(_T(">"), position);

      if (position == std::wstring::npos) {
            break;
         }
    }

}

/*
* The method return current system time in VariantTime format
* used in FILEFileManagement
*/

DATE getSystemTime() {

    SYSTEMTIME t;
    DATE date;
    BOOL isUTC = TRUE;
    wchar_t localTemp [DIM_LOCAL_TEMP];

    GetLocalTime (&t);

    // conversion from actual time to UTC
    // if propertyValue PROPERTY_SOURCEPROP_SYSTEMTIME_TO_LOCALTIME == 1 then
    //wchar_t propertyValue[10];
    //getClientConfigurationInternal (NULL, PROPERTY_SOURCEPROP_SPDM_SYSTEMTIME_TO_LOCALTIME, propertyValue, FALSE);

    //if (wcscmp(propertyValue, TEXT("1")) == 0) {
    //    isUTC = TRUE;
    //}

    if (isUTC) {
        localTimeToUTC(t);
    }

    wchar_t month [10];
    wchar_t day   [10];
    wchar_t hour  [10];
    wchar_t minute[10];
    wchar_t second[10];

    // month
    if (t.wMonth < 10)
        wsprintf(month, TEXT("0%i"), t.wMonth);
    else
        wsprintf(month, TEXT("%i"), t.wMonth);

    // day
    if (t.wDay  < 10)
        wsprintf(day, TEXT("0%i"), t.wDay);
    else
        wsprintf(day, TEXT("%i"), t.wDay);

    // hour
    if (t.wHour  < 10)
        wsprintf(hour, TEXT("0%i"), t.wHour);
    else
        wsprintf(hour, TEXT("%i"), t.wHour);

    // minute
    if (t.wMinute < 10)
        wsprintf(minute, TEXT("0%i"), t.wMinute);
    else
        wsprintf(minute, TEXT("%i"), t.wMinute);

    // second
    if (t.wSecond < 10)
        wsprintf(second, TEXT("0%i"), t.wSecond);
    else
        wsprintf(second, TEXT("%i"), t.wSecond);

    if (isUTC) {
        wsprintf(localTemp, TEXT("%i%s%sT%s%s%sZ"), t.wYear, month, day, hour, minute, second);
    } else {
        wsprintf(localTemp, TEXT("%i%s%sT%s%s%s"), t.wYear, month, day, hour, minute, second);
    }
    //MessageBox (NULL, localTemp, TEXT ("Update"), MB_SETFOREGROUND |MB_OK);
    systemTimeToDouble(localTemp, &date, NULL);

    return date;

}

/*
* The method return current system time from VariantTime format
*
* @param tempDate : the variable to write date in
* @param date     : the date in variant time format
*/

void doubleToSystemTime(wchar_t* tempDate, DATE date) {
    doubleToSystemTimeHourZero(tempDate, date, FALSE);
}

/*
* Is like doubleToSystemTime but set hour to 0. It used directly for anniversary and birthday.
* if not the time represented by date is the same in which the date is written
* on the device
*/
void doubleToSystemTimeHourZero(wchar_t* tempDate, DATE date, BOOL isHourToSetToZero) {

    SYSTEMTIME t;
    VariantTimeToSystemTime(date, &t);

    if (isHourToSetToZero) {
        t.wHour = 0;
        t.wMinute = 0;
        t.wSecond = 0;
    }

    localTimeToUTC2(t);

    wsprintf(tempDate, TEXT("%d%02d%02dT%02d%02d%02dZ"),
             t.wYear, t.wMonth, t.wDay,
             t.wHour, t.wMinute, t.wSecond);
}


/*
* Is like doubleToSystemTime but set hour to 0. It used directly for anniversary and birthday.
* if not the time represented by date is the same in which the date is written
* on the device
*/
void doubleToSystemTimeBirthday(wchar_t* tempDate, DATE date) {

    SYSTEMTIME t;

    VariantTimeToSystemTime(date, &t);

    t.wHour = 0;
    t.wMinute = 0;
    t.wSecond = 0;

    wchar_t month [10];
    wchar_t day   [10];

    // month
    if (t.wMonth < 10)
        wsprintf(month, TEXT("0%i"), t.wMonth);
    else
        wsprintf(month, TEXT("%i"), t.wMonth);

    // day
    if (t.wDay  < 10)
        wsprintf(day, TEXT("0%i"), t.wDay);
    else
        wsprintf(day, TEXT("%i"), t.wDay);


    wsprintf(tempDate, TEXT("%i-%s-%s"), t.wYear, month, day);


}

/*
* The method transform a string date in format "yyyy-MM-dd" to DATE
*
* @param dataString : the string in yyyy-MM-dd format
* @param date       : the returned value into VariantTime format
* @action           : the parameter to set manually hour and minute. If NULL current value are used
*/
void systemTimeToDoubleBirthday(const wchar_t* dataString, DATE* date) {
    systemTimeToDoubleBirthFormat(dataString, date, TEXT("START"));
}

/*
* It is used to transform yyyy-MM-dd format date into DATE. type parameter is to set
* the hours and minutes.
* Parameter END to set hour 23:59
* Parameter START to set hour 00:00
* Set the hour to 00:00 is used for birthday, anniversary and startDate of appoitment
* when it is all day event. Set hour 23:59 for endDate when an appointment it is allDayEvent
*/
void systemTimeToDoubleBirthFormat(const wchar_t* dataString, DATE* date, const wchar_t* type) {

    wchar_t* token  = NULL;
    wchar_t* dummy  = NULL;
    wchar_t* Ztoken = NULL;

    wchar_t internalString[DIM_LOCAL_TEMP];
    wsprintf(internalString, dataString);
    wchar_t tmp[50];

    int ret = 0;

    SYSTEMTIME t;
    TIME_ZONE_INFORMATION tmz;

    GetTimeZoneInformation(&tmz);

    Ztoken = wcschr(dataString, '-');
    if (Ztoken == NULL) {
        systemTimeToDouble(dataString, date, NULL);
        return;
    }

    //  TEXT("yyyy-MM-dd")
    token = wcstok(internalString, TEXT("-"));

    if (token != NULL) {

        //yyyy
        wcsncpy(tmp, dataString, 4);
        tmp[4] = 0;
        swscanf(tmp, TEXT("%d"),&t.wYear);
        //MM
        wcsncpy(tmp, dataString + 5, 2);
        tmp[2] = 0;
        swscanf(tmp, TEXT("%d"),&t.wMonth);
        //dd
         wcsncpy(tmp, dataString + 8, 2);
        tmp[2] = 0;
        swscanf(tmp, TEXT("%d"),&t.wDay);

        if (wcscmp(type, TEXT("END")) == 0) {

            t.wHour = 23;
            t.wMinute = 59;
            t.wSecond = 0;
        } else {

            t.wHour = 0;
            t.wMinute = 0;
            t.wSecond = 0;
        }

        // set to default
        t.wMilliseconds = 0;
        t.wDayOfWeek = 0;

        ret = SystemTimeToVariantTime (&t, date);


    } else {

        (*date) = 949998.000000;

    }
}


/*
* The method transform a date in format "YYYYMMDDThhmmss" or "YYYYMMDDThhmmssZ" with hour 0-24 into VariantTime format.
*
* @param dataString : the string in "YYYYMMDDThhmmss" or "YYYYMMDDThhmmssZ" format
* @param date       : the returned value into VariantTime format
* @action           : the parameter to set manually hour and minute. If NULL current value are used
*/
void systemTimeToDouble(const wchar_t* dataString, DATE* date, const wchar_t* action) {

    wchar_t* token  = NULL;
    wchar_t* dummy  = NULL;
    wchar_t* Ztoken = NULL;
    BOOL isUTC      = FALSE;
    wchar_t internalString[DIM_LOCAL_TEMP];
    wsprintf(internalString, dataString);
    wchar_t tmp[50];

    int ret = 0;

    SYSTEMTIME t;
    TIME_ZONE_INFORMATION tmz;

    GetTimeZoneInformation(&tmz);

    //  TEXT("20041006T203457") or TEXT("20041006T203457Z")
    token = wcstok(internalString, TEXT("T"));
    Ztoken = wcschr(dataString, 'Z');
    if (Ztoken != NULL) {
        isUTC = TRUE;
    }

    if (token != NULL) {

        //yyyy
        wcsncpy(tmp, dataString, 4);
        tmp[4] = 0;
        swscanf(tmp, TEXT("%d"),&t.wYear);
        //MM
        wcsncpy(tmp, dataString + 4, 2);
        tmp[2] = 0;
        swscanf(tmp, TEXT("%d"),&t.wMonth);
        //dd
        wcsncpy(tmp, dataString + 6, 2);
        tmp[2] = 0;
        swscanf(tmp, TEXT("%d"),&t.wDay);

        if (action != NULL && wcscmp(action, TEXT("0000")) == 0) {
            t.wHour = 0;
            t.wMinute = 0;
            t.wSecond = 0;

        } else if (action != NULL && wcscmp(action, TEXT("2359")) == 0) {
            t.wHour = 23;
            t.wMinute = 59;
            t.wSecond = 59;
        } else {
            if (wcslen(dataString) > 9) {
                //HH
                wcsncpy(tmp, dataString + 9, 2);
                tmp[2] = 0;
                swscanf(tmp, TEXT("%d"),&t.wHour);

                //mm
                 wcsncpy(tmp, dataString + 11, 2);
                tmp[2] = 0;
                swscanf(tmp, TEXT("%d"),&t.wMinute);
                //ss
                 wcsncpy(tmp, dataString + 13, 2);
                tmp[2] = 0;
                swscanf(tmp, TEXT("%d"),&t.wSecond);


            } else {
                t.wHour = 0;
                t.wMinute = 0;
                t.wSecond = 0;
            }

        }
        // set to default
        t.wMilliseconds = 0;
        t.wDayOfWeek = 0;


        if(isUTC) {
            UTCToLocalTime2(t);
        }
        ret = SystemTimeToVariantTime (&t, date);


    } else {

        (*date) = 949998.000000;

    }

}

/*
* return date and time of a date and if it is in utc or not
*/
BOOL getDateAndTimeAsIs(const wchar_t* dataString, DATE* date) {

    wchar_t* token  = NULL;
    wchar_t* dummy  = NULL;
    wchar_t* Ztoken = NULL;
    BOOL isUTC      = FALSE;
    wchar_t internalString[DIM_LOCAL_TEMP];
    wsprintf(internalString, dataString);
    wchar_t tmp[50];

    int ret = 0;

    SYSTEMTIME t;
    TIME_ZONE_INFORMATION tmz;

    GetTimeZoneInformation(&tmz);

    //  TEXT("20041006T203457") or TEXT("20041006T203457Z")
    token = wcstok(internalString, TEXT("T"));
    Ztoken = wcschr(dataString, 'Z');
    if (Ztoken != NULL) {
        isUTC = TRUE;
    }

    if (token != NULL) {

        //yyyy
        wcsncpy(tmp, dataString, 4);
        tmp[4] = 0;
        swscanf(tmp, TEXT("%d"),&t.wYear);
        //MM
        wcsncpy(tmp, dataString + 4, 2);
        tmp[2] = 0;
        swscanf(tmp, TEXT("%d"),&t.wMonth);
        //dd
         wcsncpy(tmp, dataString + 6, 2);
        tmp[2] = 0;
        swscanf(tmp, TEXT("%d"),&t.wDay);

        if (wcslen(dataString) > 9) {
            //HH
            wcsncpy(tmp, dataString + 9, 2);
            tmp[2] = 0;
            swscanf(tmp, TEXT("%d"),&t.wHour);

            //mm
            wcsncpy(tmp, dataString + 11, 2);
            tmp[2] = 0;
            swscanf(tmp, TEXT("%d"),&t.wMinute);
            //ss
            wcsncpy(tmp, dataString + 13, 2);
            tmp[2] = 0;
            swscanf(tmp, TEXT("%d"),&t.wSecond);

        } else {
            t.wHour = 0;
            t.wMinute = 0;
            t.wSecond = 0;
        }


        // set to default
        t.wMilliseconds = 0;
        t.wDayOfWeek = 0;

        ret = SystemTimeToVariantTime (&t, date);


    } else {

        (*date) = 949998.000000;

    }
    return isUTC;

}


/**
 * Check if the given date is in date-only format or not.
 * FIXME: we should support YYYYMMDD too, without '-'.
 */
bool isDateForAllDayEventFormat(const wchar_t* stringDate) {
    return (wcschr(stringDate, '-') != NULL);
}

/**
 * Parse the given date, in different formats, see header for details.
 */
DATE getDATEFromString(const wchar_t *date, const wchar_t *hour) {
    DATE ret = 0;
    if (isDateForAllDayEventFormat(date)) {
        const wchar_t *type = TEXT("START");
        if(hour && wcscmp(hour, TEXT("2359")) == 0) {
            type = TEXT("END");
        }
        systemTimeToDoubleBirthFormat(date, &ret, type);
    } else {
        systemTimeToDouble(date, &ret, hour);
    }
    return ret;
}


/*
* The method returns the file name from the complete path.
*
* @param path     : the complete path
* @param filename : the filename retrieved form path
*/

void getFileName(const wchar_t* path, wchar_t* filename) {
    wchar_t* p;

    p = wcsrchr(path, L'\\');

    if (p == NULL) {
        wcscpy(filename, path);
        return;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91对白在线观看九色| 亚洲一级二级三级在线免费观看| 久久精品国产色蜜蜜麻豆| 日韩网站在线看片你懂的| 免费成人av在线| 日韩欧美成人午夜| 国产成人免费视频网站高清观看视频 | 在线欧美日韩国产| 香蕉av福利精品导航| 日韩欧美的一区二区| 国产成人av在线影院| 亚洲免费观看高清完整版在线观看 | 国产成人自拍网| 国产精品久久久久久久久晋中 | 99久久精品免费看| 亚洲一区二区在线免费观看视频| 欧美精选午夜久久久乱码6080| 美国十次综合导航| 国产亲近乱来精品视频| 欧美最新大片在线看| 精品午夜久久福利影院| 国产精品狼人久久影院观看方式| 欧洲av一区二区嗯嗯嗯啊| 蜜臀久久久久久久| 国产精品理论在线观看| 这里是久久伊人| 国产盗摄女厕一区二区三区| 亚洲男人的天堂在线aⅴ视频| 欧美日韩精品二区第二页| 国产精品伊人色| 成人性色生活片免费看爆迷你毛片| 欧美极品少妇xxxxⅹ高跟鞋| 欧洲激情一区二区| 国产丶欧美丶日本不卡视频| 亚洲国产三级在线| 国产拍揄自揄精品视频麻豆| 欧美日韩精品电影| 99re这里都是精品| 久久99九九99精品| 一区二区高清免费观看影视大全| 欧美成人高清电影在线| 一本一本久久a久久精品综合麻豆| 天天射综合影视| 亚洲欧美电影院| 久久色视频免费观看| 欧美日韩成人在线| www.成人网.com| 国产综合色精品一区二区三区| 一区二区三区久久| 亚洲国产高清在线| 精品国偷自产国产一区| 欧美视频一区二| 99久久免费精品| 国产一区二区不卡老阿姨| 日韩不卡一区二区| 一区二区三区产品免费精品久久75| 久久久久成人黄色影片| 日韩欧美在线综合网| 欧美亚洲一区二区在线观看| 97久久人人超碰| 成人性生交大片免费| 国内外成人在线视频| 日韩电影在线一区二区三区| 亚洲综合成人在线视频| 日韩一区欧美一区| 国产精品国产a级| 国产欧美一区二区精品性| 精品国产欧美一区二区| 日韩欧美123| 日韩免费观看2025年上映的电影| 欧美日韩精品欧美日韩精品一 | 日韩无一区二区| 91精品久久久久久久91蜜桃| 欧美日韩一区二区三区在线 | 一区二区三区四区视频精品免费 | 欧美年轻男男videosbes| 91成人网在线| 在线精品国精品国产尤物884a| 国产色综合久久| 欧美国产一区在线| 中文无字幕一区二区三区| 欧美高清在线一区二区| 国产精品家庭影院| 综合久久给合久久狠狠狠97色| 国产欧美精品国产国产专区 | 粉嫩一区二区三区在线看| 国产成+人+日韩+欧美+亚洲| 国产乱码一区二区三区| 国产精品69久久久久水密桃| 国产传媒日韩欧美成人| 丁香六月久久综合狠狠色| 成人在线视频一区二区| 粉嫩久久99精品久久久久久夜 | 欧美性色欧美a在线播放| 欧美日韩免费一区二区三区| 6080yy午夜一二三区久久| 日韩久久久久久| 亚洲国产精品二十页| 亚洲欧美电影院| 日本成人中文字幕在线视频| 韩国三级中文字幕hd久久精品| 国产成人a级片| 欧洲日韩一区二区三区| 日韩一级二级三级| 国产免费久久精品| 亚洲亚洲人成综合网络| 精彩视频一区二区| 91免费小视频| 欧美一级日韩免费不卡| 国产欧美一区二区在线观看| 亚洲美女精品一区| 免费在线看成人av| 99久久伊人网影院| 91精品一区二区三区久久久久久| 国产亚洲欧美色| 亚洲一区二区三区在线看| 久久国产精品露脸对白| 波多野结衣的一区二区三区| 欧美日韩一区二区电影| 久久久精品国产免大香伊| 亚洲精品亚洲人成人网| 精品一区免费av| 色欧美片视频在线观看| 久久久精品国产免大香伊 | 三级在线观看一区二区| 成人午夜伦理影院| 欧美一区二区黄色| 亚洲欧美电影院| 国产成人综合在线观看| 8x8x8国产精品| 亚洲私人影院在线观看| 久久av老司机精品网站导航| 91国偷自产一区二区使用方法| www国产成人| 日精品一区二区三区| 99久久综合色| 老司机免费视频一区二区三区| 99久久99久久精品免费观看| 精品久久久久久综合日本欧美| 亚洲精品videosex极品| 国产91精品入口| 欧美xingq一区二区| 亚洲国产精品久久久久婷婷884 | 日本亚洲一区二区| 色偷偷成人一区二区三区91| 国产日本一区二区| 黄色资源网久久资源365| 欧美乱妇15p| 亚洲综合视频网| 97久久久精品综合88久久| 久久久久久影视| 国内精品久久久久影院一蜜桃| 日韩午夜激情免费电影| 日精品一区二区| 欧美日本一道本| 午夜伦理一区二区| 欧美性生活久久| 亚洲精品福利视频网站| 成人黄色国产精品网站大全在线免费观看 | 日韩黄色在线观看| 欧美二区乱c少妇| 亚洲一区日韩精品中文字幕| 91丨porny丨首页| 成人免费视频在线观看| 91碰在线视频| 一区二区三区在线免费视频| 色欧美乱欧美15图片| 亚洲三级电影网站| 色婷婷国产精品| 亚洲国产综合91精品麻豆| 欧美日韩国产电影| 日韩精品一级二级| 91精品国产高清一区二区三区| 日韩高清不卡一区二区三区| 欧美一区在线视频| 久久国产精品72免费观看| 久久综合九色综合97婷婷| 国产精品一区二区久久不卡| 久久网站热最新地址| 精品无码三级在线观看视频| 久久伊99综合婷婷久久伊| 国产91丝袜在线观看| 国产精品第五页| 欧美在线免费视屏| 日韩av中文字幕一区二区三区| 欧美一级电影网站| 国产麻豆成人传媒免费观看| 国产免费久久精品| 色女孩综合影院| 三级亚洲高清视频| 久久久久久久综合色一本| 99热国产精品| 午夜不卡av免费| 2024国产精品| 成人av电影观看| 亚洲猫色日本管| 欧美日本一道本| 懂色av一区二区夜夜嗨| 一区二区三区国产| 精品第一国产综合精品aⅴ|