获取本地时间和网络时间
来源:互联网 发布:c语言常量 编辑:程序博客网 时间:2024/04/26 05:55
游戏中通常都会有根据时间来恢复体力值的设定,但是如果是本地时间的话,玩家可以通过修改本地时间的作弊行为来达到迅速恢复体力的目的。RT,我们便需要根据网络时间来进行判定。
1、获取本地时
Ps:别忘了添加需要的头文件
void getLocationTime(){ struct tm *tm; time_t timep;#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) time(&timep);#else struct timeval tv; gettimeofday(&tv,NULL); timep = tv.tv_sec;#endif tm = localtime(&timep); int year = tm->tm_year + 1900; int month = tm->tm_mon + 1; int day = tm->tm_mday; int hour=tm->tm_hour; int minute=tm->tm_min; int second=tm->tm_sec; std::cout << "当前日期:" << year << "-" << month << "-" << day << std::endl; std::cout << "当前时间:" << hour << ":" << minute << ":" << second << std::endl;}
2、获取网络时间
这里是利用百度的时间url来获取网络时间
直接上代码:
NetTime.h
#define __NETTIME_H___#ifdef __NETTIME_H___#include "cocos2d.h"#include "network/HttpClient.h"USING_NS_CC;using namespace network;class NetTime : public Node{public: NetTime(); ~NetTime(); CREATE_FUNC(NetTime); CC_SYNTHESIZE(int, nDay, Day); CC_SYNTHESIZE(int, nMonth, Month); CC_SYNTHESIZE(int, nYear, Year); CC_SYNTHESIZE(int, nHour, Hour); CC_SYNTHESIZE(int, nMinute, Minute); CC_SYNTHESIZE(int, nSecond, Second); CC_SYNTHESIZE(time_t, tTime, Time); void onRequestTime(); static void splitString(std::vector<std::string> &contentVector, std::string content, std::string pattern); void onHttpComplete(HttpClient * sender, HttpResponse * response); void spliteTime(std::string htmlStr); void initTime(time_t time); static NetTime* getInstance(); static NetTime* pInstance;};#endif
NetTime.cpp
#include "NetTime.h"NetTime* NetTime::pInstance = NULL;NetTime::NetTime() : nDay(0), nMonth(0), nYear(0), nHour(0), nMinute(0), nSecond(0){}NetTime::~NetTime(){}void NetTime::onRequestTime(){ HttpRequest* request = new HttpRequest(); request->setUrl("http://open.baidu.com/special/time/");//baidu getNetTime api request->setRequestType(HttpRequest::Type::GET); request->setTag("getNetTime"); request->setResponseCallback(this, httpresponse_selector(NetTime::onHttpComplete)); HttpClient::getInstance()->send(request);}void NetTime::onHttpComplete(HttpClient * sender, HttpResponse * response){ if (!response) return; if (0 != strlen(response->getHttpRequest()->getTag())) { CCLOG("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[64] = {}; sprintf_s(statusString, "HTTP Status : %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); CCLOG("%s", statusString); if (!response->isSucceed()) { CCLOG(" response failed !"); CCLOG(" error buffer is :%s", response->getErrorBuffer()); return; } std::vector<char> * buffer = response->getResponseData(); std::string str; for (unsigned i = 0; i < buffer->size(); i++) { char a = (*buffer)[i]; str.append(1, a); } spliteTime(str);}void NetTime::spliteTime(std::string htmlStr){ std::vector<std::string> tmp; splitString(tmp, htmlStr, "baidu_time"); std::string str = tmp.at(2); std::string tmpTime = str.substr(1, 10); time_t tt = atoi(tmpTime.c_str()); initTime(tt);}void NetTime::initTime(time_t time){ time_t t; struct tm* p; t = time; p = localtime(&t); setSecond(p->tm_sec); setMinute(p->tm_min); setHour(p->tm_hour); setDay(p->tm_mday); setMonth(p->tm_mon + 1); setYear(p->tm_year + 1900); setTime(t); log("time is : %d-%d-%d %d:%d:%d", getYear(), getMonth(), getDay(), getHour(), getMinute(), getSecond());}//切割字符串void NetTime::splitString(std::vector<std::string> &contentVector, std::string content, std::string pattern){ std::string::size_type pos; content += pattern; int size = content.size(); for (int i = 0; i < size; i++) { pos = content.find(pattern, i); if (pos < size) { std::string s = content.substr(i, pos - i); contentVector.push_back(s); i = pos + pattern.size() - 1; } }}NetTime* NetTime::getInstance(){ if (pInstance == NULL) { pInstance = new NetTime; } return pInstance;}
1 0
- 获取本地时间和网络时间
- Java 获取本地时间与网络时间
- C#同步网络时间和本地时间
- C#同步网络时间和本地时间
- 获取服务器时间和本地时间
- 获取系统时间和本地时间
- C语言获取系统本地时间和修改本地时间
- python 获取网络时间及修改本地时间
- python 获取网络时间及修改本地时间
- 获取本地时间,UTC时间
- 时间格式转换 获取系统时间 和 获得网络时间
- php获取时间(系统时间和网络时间)
- js获取本地时间和回车事件
- 获取本地时间和格林威治时间一点用法
- 利用js获取当前本地时间和服务器时间
- 获取本地时间
- 获取本地系统时间
- 获取本地时间
- Window、PhoneWindow与DecorView
- <LeetCode OJ> 78 / 90 Subsets (I / II)
- 关于might_sleep的一点说明
- (web日志)把后台的日志System.out输出到网页servlet
- 算法训练 最大最小公倍数
- 获取本地时间和网络时间
- web前端错误日志-------display
- 计算机网络之数据链路层
- Android反编译与防反编译
- android中Notification状态栏的简单实用
- 远程执行shell
- Jquery定义对象( 闭包 )
- Java——Mybatis——sql关联查询
- 广播的最佳实践——实现强制下线功能