目的:
使用定時器(QTimer類)與進位計算實現具有日期顯示功能的電子鐘,通過界面可以修改日期和時間。不能使用Qt自帶的日期和時間類(QDate、QDatetime、QTime等)進行設計。
簡介:
輸入一個初始時間,使用定時器根據時間日期的進位計算進行時間數據更新。主要考慮平年閏年問題,月份天數問題等。
效果:
代碼:
//判斷平年還是閏年
//參數year 是輸入的年份 如果是平年就返回true,如果是閏年就返回false
bool MainForm::isCommonYear(int year)
{
//要判斷某一年是不是閏年,一般方法是用4或400去除這一年的年份數,如果除得的商是整數而沒有餘數,那麼這一年是閏年。
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
//閏年
return false;
}
else
{
//平年
return true;
}
}
//判斷這個月有多少天
//如果月份數對,年數 返回天數
int MainForm::howManyDayofTheMonth(int month,int year)
{
//先判斷是平年還是閏年
//如果是平年,那麼2月就是28天
if(isCommonYear(year))
{
//如果是2月
if(month == 2)
{
return 28;
}
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
//如果是1 3 5 7 8 10 12 這幾個月份,那就是31天
return 31;
}
//如果不是上面的月份,那就返回30天
return 30;
}
//如果是閏年
if(month == 2)
{
return 29;
}
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
//如果是1 3 5 7 8 10 12 這幾個月份,那就是31天
return 31;
}
//如果不是上面的月份,那就返回30天
return 30;
}
exe體驗地址(百度網盤鏈接):
鏈接:https://pan.baidu.com/s/1lWv96yRTQmQfDFHDtQmxAg
提取碼:2tlt