我有一个小应用程序,它的回报是星期甚至不是。

time_t now = time(0);
tm *ltm = localtime(&now);
int twin=(ltm->tm_yday/7)%2

但独立于一年的第一天,所以它回来了
星期一、星期四、我们等
0,1,1,1,1,1,1,1
下周
1,0,0,0,0,0,0
来年
星期一、星期四、我们等
0,0,1,1,1,1,1,1
下周
1,1,0,0,0,0,0
等等。。
双数模2=0
所以我必须增加班次来改变每周日或周一的周数。有什么建议吗?

最佳答案

你假设第一周只有7天,这是不正确的。
例如,2013年1月1日是星期二,因此第一周只有5天。
使用strftime怎么样?类似于:

time_t now = time(0);
tm *ltm = localtime(&now);
char weekNr[3];
strftime(weekNr, sizeof(weekNr), "%W", ltm);
int isOdd = atoi(weeknr) % 2;

10-08 11:04