Laborka 2 zadanie 1
// Lista2.1.cpp : Defines the entry point for the console application. // #include "stdafx.h" int day0 = 5; //Piątek 01.01.2010 - data odniesienia char* Dni[] = {"niedziela", "poniedziałek", "wtorek", "sroda", "czwartek", "piatek", "sobota"}; struct DATA { int d,m,y; }; struct DATA Data; struct MD { int m, ile; }; struct MD M[] = { {1, 0}, {2, 31}, {3, 59}, {4, 90}, {5, 120}, {6, 151}, {7, 181}, {8, 212}, {9, 243}, {10,273}, {11,304}, {12,334} }; int czyPrzestepny(int y) { if((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) return 1; else return 0; } int jakiDzien(int d, int m, int y) { int n, k=0, z, ys, ye; if(y >= 2010) ys = 2010, ye = y, z = 1; else ys = y, ye = 2010, z = -1; for(int i = ys; i < ye; i++) if(czyPrzestepny(i) == 1) k+=z*2; else k+=z; if(czyPrzestepny(y) == 1 && m > 2) k+=1; n = ((M[m-1].ile + d) % 7) + k + day0; if(n > 7) n = n % 7; else if(n < 1) n = n % 7 + 7; return n - 1; } int _tmain(int argc, _TCHAR* argv[]) { fprintf(stderr,"Podaj date w formacie d.m.y "); scanf_s("%d%*c%d%*c%d",&Data.d,&Data.m,&Data.y); printf("%s %d.%d.%d\n", Dni[jakiDzien(Data.d,Data.m,Data.y)],Data.d,Data.m,Data.y); _getch(); return 0; }
Offline