从c到c++到qt怎么计算时间的!!!
2017-10-26 22:32
495 查看
c语言怎么做计算一个时间的函数:
#include <time.h> #include <stdio.h> int main(int argc,char *argv[]) { time_t tmpcal_ptr; struct tm *tmp_ptr = NULL; time(&tmpcal_ptr); //tmpcal_ptr = time();//两种取值方法均可 printf("tmpcal_ptr = %ld\n",tmpcal_ptr); tmp_ptr = gmtime(&tmpcal_ptr); printf("after gmtime ,the time id:%d:%d:%d\n",tmp_ptr->tm_hour, tmp_ptr->tm_min,tmp_ptr->tm_sec); tmp_ptr = localtime(&tmpcal_ptr); printf("after localtime,the time id:%d.%d.%d\n",(1900+tmp_ptr->tm_year),(1+tmp_ptr->tm_mon),(tmp_ptr->tm_mday)); printf("%d:%d:%d\n",tmp_ptr->tm_hour,tmp_ptr->tm_min,tmp_ptr->tm_sec); return 0; }gmtime转化出的是0时区的时间localtime是将时区考虑在内了,转出的当前时区的时间。但是注意,有些嵌入式设备上被裁减过的系统,时区没有被设置好,导致二者转出来的时间都是0时区的。
c++里面:
#include <iostream> #include <unistd.h> using namespace std; class A { //const成员函数 public: A(); void fun() const; void fun1(); private: // 非const成员变量 const int b ;//=1; // const成员变量,可以在类内对c //onst成员变量进行初始化,但是是g++11的版本 int second; int minute; int hour; }; A::A():second(0),minute(0),hour(0),b(0) { } void A::fun() const { cout<<"the time is :"<<hour<<":"<<minute<<":"<<second<<":"<<endl; } void A::fun1() { second++; hour = second/3600; minute = (second-hour*3600)/60; second = (second-hour*3600-minute*60); } int main(int argc,char *argv[]) { A q; while(1) { q.fun1(); sleep(1); q.fun(); } return 0; }QT 里面用已经封装好的QTime类和QTImer类,完成该功能,将鼠标点击事件与定时器的控制函数:timer->start();timer->stop();函数绑定在一起;connect()函数
具体的实现:
为了方便演示: 用QT设计师,添加了一个pushbutton的按扭 和一个名为lineEdit_1 lineEdit_2 的行编辑对象: ``` 具体的代码实现:
/*MAINWINDOW.h*/ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QTimer> #include <QTime> #include <QDebug> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); QTimer * timer;//new a timer QTime * timeRecord;//recoed time // bool isStart; int count; private: Ui::MainWindow *ui; private slots: void xytimerUpDate(); void on_pushButton_clicked(); void updateTime(); }; #endif // MAINWINDOW_H/*MAINWIDOW.cpp*/
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
timer = new QTimer(this);
timeRecord = new QTime(0,0,0); //init the time
isStart = false;
count = 0;ui->lineEdit_1->setText("0:0:0");
ui->lineEdit_2->setText(timeRecord->toString("hh:mm:ss"));if(timer == NULL)
{
qDebug()<<"fail timer";
}else
{
connect(timer,SIGNAL(timeout()),this,SLOT(xytimerUpDate()));timer->setInterval(500);
}}MainWindow::~MainWindow()
{
timer->stop();//stop count//ui->lineEdit_1->setText( timer->);
delete timer;//release memeory;
delete ui;
}void MainWindow::on_pushButton_clicked()
{
if(timer->isActive())
{
timer->stop();
}
else
{
timer->start();}}void MainWindow::updateTime()
{}void MainWindow::xytimerUpDate()
{count++;int hour = count/3600;
int minute = (count - hour*3600)/60;
int second = (count - hour*3600 - minute *60);//qDebug()<<"timer :"<<QString().arg(count)<<endl;
ui->lineEdit_1->setText(QString("%1:%2:%3").arg(hour).arg(minute).arg(second));
*timeRecord = timeRecord->addSecs(1);
ui->lineEdit_2->setText(timeRecord->toString("hh:mm:ss"));}
在这里举一个Qstring类的追加功能的案例:
int b= 10;
int c = 20;ui->lineEdit->setText(QString("%1:%2").arg(b).arg(2));
sleep(5);
ui->lineEdit->setText(QString("%1:%2").arg(b).arg(2).append(c));
相关文章推荐
- C/C++ 计算时间差的五种方法 / Qt 计算时间差的两种方法
- c++计算程序运行时间的函数,怎么才能精确到微妙级呢?
- c++怎么计算代码运行时间到超精确毫秒级别
- C/C++ 计算时间差的五种方法 / Qt 计算时间差的两种方法
- C/C++ 计算时间差的五种方法 / Qt 计算时间差的两种方法
- c++ 生成随机数、计算运行时间
- c++ 计算程序运行时间
- C++中的时间计算
- c++如何计算程序运行的时间
- YTU 2387计算时间差【C++】
- Windows下C++计算代码段运行时间
- QT笔记(7)——Qt利用QTime计算程序运行时间
- c/c++计算程序运行时间
- 请问C++在坐标轴内怎么计算一个长方形和十字形状的面积,用数组保存的坐标点
- c/c++在windows下获取时间和计算时间差的几种方法总结
- <C++>计算程序运行时间
- php实例 系统怎么来计算几天后,几小时后,几分钟后,几周,几个月,几年后的时间
- 【转】C/C++中 算法运行时间的三种计算方式
- 关于标准c++ 利用clock()函数计算时间为负值原因及解决
- [转]C++中sizeof(struct)怎么计算?