android - 在Cocos2d-x里如何获得系统当前时间?

 个信2602881723 发布于 2022-11-07 20:52

我想用Cocos2d-x开发一款跨平台的应用程序,一个随时可以倒计时的钟表。如果让我直接写的话,我会用C++的time(...),mktime(...)和difftime(...)。但考虑跨平台的需求,这种方法显然不合适。那在Cocos2d-x里没有较好的解决方案(如直接内置到框架中的方法)。而且,我需要应用可以在iPhone、iPad和Android三个终端都能正常工作。

原问题:Is there a preferred way to get the system time in cocos2d-x?

1 个回答
  • 答案
    einverne:这个函数可以获取系统当前的时间,以毫秒为单位。我是一个Cocos2d-x新手,希望对你有所帮助。

    static inline long millisecondNow()
    {
        struct cc_timeval now;
        CCTime::gettimeofdayCocos2d(&now, NULL);
        return (now.tv_sec * 1000 + now.tv_usec / 1000);
    }
    

    NonlinearIdeas(提问者):这个似乎接近我的需求,但这只是我需要的一部分,一般情况下,我需要一个真正的“日期和时间”对象(或结构),不只是以毫秒为单位。我自己尝试了下,就目前而言,最佳的解决方案似乎是用C++中的经典“三剑客” localtime,mktime和difftime。展示几个基本操作的实例,我可以虚构一个通用类去做不同的类型的操作,我认为这是一个很不错的开头.

    double Utilities::SecondsTill(int hour, int minute)
    {
       time_t now;
       struct tm target;
       double seconds;
    
       time(&now);  
    
       target = *localtime(&now);
    
       target.tm_hour = hour;
       target.tm_min = minute;
       target.tm_sec = 0;
    
       seconds = difftime(mktime(&target),now);
    
       return seconds;
    }
    
    DAYS_OF_WEEK_T Utilities::GetDayOfWeek()
    {
       struct tm tinfo;
       time_t rawtime;
       time (&rawtime);
    
       tinfo = *localtime(&rawtime);
    
       return (DAYS_OF_WEEK_T)tinfo.tm_wday;
    }
    
    2022-11-12 01:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有