永发信息网

关于qt的日期问题

答案:2  悬赏:70  手机版
解决时间 2021-03-15 05:29
  • 提问者网友:夢醒日落
  • 2021-03-15 00:51
我现在要写了个通讯录,然后要写个能自动找出未来五天生日的联系人的函数,小白现在有如下问题想请教各位热心大神:
1、如何把每个联系人的生日储存起来?是把每个联系人的生日作为一个QDate对象,然后再储存起来吗?
2、如果是这样,请问QDate的对象(日期)是如何显示在窗口上的?
3(最重要的)、因为我现在只能用纯代码写,所以不知如何写出一个界面可以用户自己键入生日后再保存的?
最佳答案
  • 五星知识达人网友:佘樂
  • 2021-03-15 01:25
1、存储时使用QString即可;
2、显示的时候用静态方法“QDate QDate::fromString(const QString & string, const QString & format)”,参数1传联系人信息中存储的生日字符串比如“19890101”,参数2表示参数1的数据格式传“yyyyMMdd”(即对应格式为“年年年年月月日日”);
3、输入的时候用QLineEdit输入的生日字符串,后面加个button响应clicked事件,button按下时检查输入的字符串是否符合格式,如果符合则将QLineEdit中的字符串保存到联系人信息中,否则让用户检查输入;
注意:三个过程中生日信息的字符串的格式要保持一致(比如“yyyyMMdd”格式)。
全部回答
  • 1楼网友:行雁书
  • 2021-03-15 02:38
qdate, qdatetime, qtime; qdate应该是你需要的。qdate有重载> < = >= <= !=操作符。不过好像没有+ -操作符。你可以将目前日期用adddays函数加5天,再最个比较日期是否小于等于计算出的时间。 qdate xcurdate = qdate::currentdate(); qdate xfuturedate = xcurdate.adddays(5); qlist v; for(int i = 0; i < v.size(); i++){ qdate xdate = v[i]; if(xdate <= xfuturedate){ qdebug() << "找到:" << xdate; } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯