From e35d6579617e82248e250cc920cd120b15b25249 Mon Sep 17 00:00:00 2001 From: Miloslav Macko Date: Thu, 7 Mar 2024 12:43:45 +0100 Subject: [PATCH] 7.3 --- cv3/program.c | 132 -------------------------------------------------- 1 file changed, 132 deletions(-) diff --git a/cv3/program.c b/cv3/program.c index ba4e622..e69de29 100644 --- a/cv3/program.c +++ b/cv3/program.c @@ -1,132 +0,0 @@ -#include -#include -#include -#include -#define MAX_LENGTH 10 //Definícia maximálnej dĺžky reťazca -bool check(int d, int m, int y); - - int main() -{ - char input[MAX_LENGTH]; //deklarácia vstupneho reťazca - scanf("%s", input); //načítanie vstupu - int d,m,y; //deklarácia premenných deň, mesiac, rok - - sscanf(input,"%d.%d.%d",&d,&m,&y);//Prevod reťazca zo vstupu na celočíselné hodnoty - //Ak sa vo vstupe nachádzaju neplatné znaky, v premenných d,m,y sa objavia nuly, ktoré funkcia check vyhodnotí ako nesprávne - - if(!check(d,m,y) || d == 0 || m < 1 || y < 1 || m > 12){ //Overenie vstupu - printf("Nespravny datum\n"); - return 0; - } - - switch(m){ - case 1: //Mesiace s počtom dní 31 - case 3: - case 5: - case 7: - case 8: - case 10: - if(d > 24){ //Ak je vstupný deň väčší ako 24 znamená to že o týždeň je ďalší mesiac - m++; - d = (d+7)-31; - }else{ - d+=7; //Ak by nenastal prechod mesiacom, zvýši sa len hodnota deň - } - break; - - case 2: //Špeciálny prípad február - if(y%4==0){ //Overenie prestupného roka - if(d > 22){ - m++; - d = (d+7)-29; - }else{ - d+=7; - } - }else{ - if(d > 21){ - m++; - d = (d+7)-28; - }else{ - d+=7; - } - } - break; - - case 12: //Špeciálny prípad december; ak je deň väčší ako 24, znamená to ďalší rok - if(d > 24){ - y++; - m = 1; - d = (d+7)-31; - }else{ - d+=7; - } - break; - - case 4: //Mesiace s počtom dní 30 - case 6: - case 9: - case 11: - if(d > 23){ - m++; - d = (d+7)-30; - }else{ - d+=7; - } - break; - } - if(d < 10){ //Výpis dátumu posunutého o týždeň - if(m < 10){ - printf(" %d.0%d.%d\n\n", d,m,y); - return 0; - } - printf(" %d.%d.%d\n\n", d,m,y); - return 0; - } - if(m < 10){ - printf("%d.0%d.%d\n\n", d,m,y); - return 0; - } - printf("%d.%d.%d\n\n", d,m,y); - return 0; -} - -bool check(int d, int m, int y){ //Funkcia na overenie platnosti vstupu (napr.: 31.4 <- neplatný dátum) - bool a = true; -switch(m){ - case 1: - case 3: - case 5: - case 7: - case 8: - case 10: - case 12: - if(d < 1 || d > 31){ - a = false; - } - break; - case 4: - case 6: - case 9: - case 11: - if(d < 1 || d > 30){ - a = false; - } - break; - case 2: - if(y%4 == 0){ - if(d < 1 || d > 29){ - a = false; - break; - } - }else{ - if(d < 1 || d > 28){ - a = false; - break; - } - } - } - return a; -} - - -