从c到c++到qt怎么计算时间的!!!
来源:互联网 发布:厦门微思网络 编辑:程序博客网 时间:2024/04/27 21:22
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_OBJECTpublic: 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));
阅读全文
0 0
- 从c到c++到qt怎么计算时间的!!!
- 从c到VF
- 从C到C++
- 从C到Perl
- 从C到C#
- 从C到C++
- 从C到Perl
- 从C 到 C#
- 从C到C++
- 从C到C++
- 从C到C++
- 从C到C++
- 从C到C++
- 从C到C++
- 从c到c++
- 从C到Perl
- 从c++到c
- 从C到C++
- Arm学习之文件目录
- MySql数据库不能远程连接的解决办法总结
- 二周四次课(10月26日)
- 使用HttpClient获得网页内容
- 【UnityShader】双面透光布料材质
- 从c到c++到qt怎么计算时间的!!!
- Dubbo总结
- iOS 开发 UIWindow 说明
- arduino与C++异同
- MavenProject导神经网络框架neuroph包——java
- C++的默认构造函数与构造函数
- 周中训练笔记14
- 设计模式六大原则
- android进程间通信ipc Messenger (一)