Другие языки программирования и технологии

определить день недели по дате

допустим дана дата: день месяца - от 1 до 31; месяц - от 1 до 12; год - от 1700 до 2100
нужно определить каким днем недели будет введенный день месяца
теперь вопрос: нужно ли знать для начала хотя бы текущий день недели
чтобы было от чего отталкиваться в поиске или
есть какой коэффициент для определения дня недели в выше указанном
промежутке лет,
например ввели дату определили високосный ли год ну и т. д.
#include <conio.h>
#include <math.h>
#include <stdio.h>

int main ()
{

int god, chislo=1, let, i=0, T=1 ;

printf("Enter year \n");
scanf("%i",&god);

let = god - 1900 ;

if (let > 0)
{
do
{
if (T==4)
chislo = chislo + 2, T=0 ;
else
chislo = chislo +1 ;

if (chislo >= 8)
chislo = chislo -7 ;

i++;
T++;
}
while (i < let) ;
}
else
{
chislo = chislo-1;

do
{
if (T==4)
chislo = chislo - 2, T=0 ;
else
chislo = chislo - 1 ;

if (chislo <= -8)
chislo = chislo +7 ;

i--;
T++;
}
while (i > let) ;
}

switch (chislo)
{
case 1 : printf ("\n First of January in %i will be Monday", god);
break ;
case 2 : printf ("\n First of January in %i will be Tuesday", god);
break ;
case 3: printf ("\n First of January in %i will be Wednesday", god);
break ;
case 4 : printf ("\n First of January in %i will be Thursday", god);
break ;
case 5: printf ("\n First of January in %i will be Friday", god);
break ;
case 6: printf ("\n First of January in %i will be Saturday", god);
break ;
case 7: printf ("\n First of January in %i will be Sunday", god);
break ;

case -7 : printf ("\n First of January in %i will be Monday", god);
break ;
case -6 : printf ("\n First of January in %i will be Tuesday", god);
break ;
case -5: printf ("\n First of January in %i will be Wednesday", god);
break ;
case -4 : printf ("\n First of January in %i will be Thursday", god);
break ;
case -3: printf ("\n First of January in %i will be Friday", god);
break ;
case -2: printf ("\n First of January in %i will be Saturday", god);
break ;
case -1: printf ("\n First of January in %i will be Sunday", god);
break ;
}

getch();
return 0;
}

Я вот так определял 1 января на какой день выпадет в определённый год на языке С.
С учётом того, что в 1900 году 1 января был понедельник.
Алексей Швындин
Алексей Швындин
1 938
Лучший ответ
Возьми текущий день за основу. Ты же знаешь, что сегодня - среда! Только осторожней с високосными годами...
Сергей Курилин
Сергей Курилин
94 698
а вам обязательно расчитывать? сейчас практически во всех ЯП есть модули по работе с датой, где это делается автоматом
Ленар Шагиев
Ленар Шагиев
76 820
Екселем воспользуйтесь.
Борис Махров
Борис Махров
88 317

Похожие вопросы