#include "stdafx.h"
//////////////////////////////////////////////////////
// Входные данные
// year - год
// month - месяц
// d- день
//
//Выходные данные
// result - Результат — число от 0 до 6, где 0 — суббота, 1 — воскресенье, 2 — понедельник, 3 — вторник, 4 — среда, 5 — четверг, 6 — пятница
int day(int year,int month, int d)
{
int a=0;
int y=0;
int result=0;
a=(14-month)/12 ; // вспомогательная переменная
y=year-a; // определяются год и месяц с учётом поправки
result=(7000+((d+y+y) / 4-y / 100+y / 400+(31*month) /12)) % 7 ; // получаем день недели
return result;// выдаем день недели
}
int _tmain(int argc, _TCHAR* argv[])
{
int mm;
int dd;
int e=0;
// преобразование страки в int
mm=int(argv[3]-'0')*10+int(argv[4]-'0')*10;
dd=int(argv[0]-'0')*10+int(argv[1]-'0')*10;
e=day(2011,mm,dd);
//e=day(2011,11,29);// занчение для проверки
printf("%d",e); // выод номера недели по возвращаемой функции
return e;
}
/* 1.1.2011 - суббота */
#include <stdio.h>
#include <stdlib.h>
int main()
{
enum {FIRST_DAY=6};
enum sum_days
{JAN=31, FEB=JAN+28, MAR=FEB+31, APR=MAR+30, MAY=APR+31, JUN=MAY+30,
JUL=JUN+31, AUG=JUL+31, SEP=AUG+30, OCT=SEP+31, NOV=OCT+30};
int month, day;
int year_day, week_day;
char s_date[6];
system("chcp 1251 >nul");
printf("Дата в формате dd.mm ");
scanf("%s", s_date);
day=(s_date[0]-'0')*10+(s_date[1]-'0');
month=(s_date[3]-'0')*10+(s_date[4]-'0');
switch (month)
{
case 1:
year_day=day;
break;
case 2:
year_day=day+JAN;
break;
case 3:
year_day=day+FEB;
break;
case 4:
year_day=day+MAR;
break;
case 5:
year_day=day+APR;
break;
case 6:
year_day=day+MAY;
break;
case 7:
year_day=day+JUN;
break;
case 8:
year_day=day+JUL;
break;
case 9:
year_day=day+AUG;
break;
case 10:
year_day=day+SEP;
break;
case 11:
year_day=day+OCT;
break;
case 12:
year_day=day+NOV;
break;
default:
year_day=0;
break;
}
week_day = (year_day+FIRST_DAY-1)%7;
if (week_day==0)
week_day=7;
printf("Номер дня недели - %d\n", week_day);
system("pause");
return 0;
}
enum sum_days
{JAN=31, FEB=JAN+28, MAR=FEB+31, APR=MAR+30, MAY=APR+31, JUN=MAY+30,
JUL=JUN+31, AUG=JUL+31, SEP=AUG+30, OCT=SEP+31, NOV=OCT+30};
week_day = (year_day+6-1)%7;
week_day = (year_day+FIRST_DAY-1)%7;
int month, day;
int year_day, week_day;
char s_date[6];
system("chcp 1251 >nul");
printf("Дата в формате dd.mm ");
scanf("%s", s_date);
day=(s_date[0]-'0')*10+(s_date[1]-'0');
month=(s_date[3]-'0')*10+(s_date[4]-'0');
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.