在這裏,我爲你製作了一個C++代碼。你不需要C++ 11來運行它。
它是如何工作的,它得到當前的月份和年份。檢查年度是閏年,然後繼續並設置最大日數。假設2017年8月。最大日期爲31天。
如果它遇到的那一天是星期日,程序開始運行並計數sundayCounter
。
這樣就可以自動獲得當月的星期日數量。
這是我的代碼,請隨時使用它。它完全符合你想要做的。你想要的變量是sundayCounter
。玩的開心。
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
bool isLeap = false;
int sundayCounter = 0;
int MAX_DAY;
int month, year;
string monthText;
time_t theTime = time(NULL);
struct tm *aTime = localtime(&theTime);
month = aTime->tm_mon;
year = aTime->tm_year;
if (year % 4 == 0)
{;
if (year % 100 == 0)
{
if (year % 400 == 0)
isLeap = true;
else
isLeap = false;
}
else
isLeap = true;
}
else {
isLeap = false;
}
switch(month)
{
case 0:
MAX_DAY = 31;
break;
case 1:
if(isLeap)
MAX_DAY = 29;
else
MAX_DAY = 28;
break;
case 2:
MAX_DAY = 31;
break;
case 3:
MAX_DAY = 30;
break;
case 4:
MAX_DAY = 31;
break;
case 5:
MAX_DAY = 30;
break;
case 6:
MAX_DAY = 31;
break;
case 7:
MAX_DAY = 31;
break;
case 8:
MAX_DAY = 30;
break;
case 9:
MAX_DAY = 31;
break;
case 10:
MAX_DAY = 30;
break;
case 11:
MAX_DAY = 31;
break;
}
for(int day = 0; day <= MAX_DAY; day++) {
struct tm time_in = { 0, 0, 0, // second, minute, hour
day, month + 1, year - 1900 }; // 1-based day, 0-based month, year since 1900
time_t time_temp = mktime(& time_in);
// the return value from localtime is a static global - do not call
// this function from more than one thread!
tm const *time_out = localtime(& time_temp);
switch(time_out->tm_wday)
{
case 0:
sundayCounter++;
break;
}
}
const char* month_list[] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
int current_month = month+1;
const char* current_month_name = month_list[current_month-1];
cout << "Sunday amount in " << current_month_name << " " << (year + 1900) << ": " << sundayCounter;
cout << endl;
return 0;
}
輸出:
Sunday amount in August 2017: 4
在電信領域的一些嵌入式系統,DST一直被認爲 '本地' 選項。因此,這些系統提供了用戶命令來啓用/禁用DST,每個設施/州/市的偏好。 –
在電信系統中,用戶啓用(或不啓用)DST,並且DST設置更改了報告的時間顯示或時間,並更改了用戶提示和手動設置時鐘的指導。已經有一段時間了,所以我不確定,但我認爲時間自動更新(來自用戶指定的時間服務器)是DST沒有意義的事情。 –
你有C++ 11嗎? –