Как я могу закодировать, сколько недель в году?
Я начал программу 1 января 1900 года. Каждый год есть 52 недели или 53 недели. Я не знаю, как подсчитать, сколько недель. Помогите мне! Большое спасибо!
Пример: Входные Данные 18-09-1999
-> вывод: Сегодня суббота.
Это 261 день в году.
Это 38 - я неделя года.
На самом деле, это была бы 37-я неделя.
Что я уже пробовал:
#include <stdio.h> #include<stdlib.h> #include<string.h> #include <time.h> int main(int argv, char** arv) { int month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; char *day[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; int d, m, y, i; int temp; printf("Fill in a date after 01-01-1900 as dd-mm-yyyy: "); scanf("%d-%d-%d", &d, &m, &y); temp=d; // correction for leap year if (y % 4 == 0 && (y % 100 != 0 || y % 400 == 0)) month[1] = 29; if (y < 1900 || m < 1 || m > 12 || d < 1 || d > month[m - 1]) { printf("This is an invalid date.\n"); return 1; } for (i = 1900; i < y; i++){ if (i % 4 == 0 && (i % 100 != 0 || i % 400 == 0)) d += 366; else d += 365; } for (i = 0; i < m - 1; i++){ d += month[i]; } printf("This is %s.\n", day[d % 7]); // day of year......................... int DayofYear=temp; for(i=0;i<(m-1);i++) DayofYear = Dayofyear +month[i]; printf("This is %d day of the year\n", DayofYear); //week of year. printf("This is week %d of the year", (DayofYear/7)+1); }