312 lines
7.1 KiB
C
312 lines
7.1 KiB
C
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <stdbool.h>
|
|
|
|
int main(){
|
|
char riadok[999][999];
|
|
int i = 0;
|
|
int a = 0;
|
|
int n = 0;
|
|
bool first;
|
|
|
|
while (1){
|
|
a = 0;
|
|
|
|
while (1){
|
|
riadok[i][a] = getchar();
|
|
|
|
if (riadok[i][a] == '\n'){
|
|
first = true;
|
|
n++;
|
|
break;
|
|
}
|
|
|
|
a++;
|
|
}
|
|
|
|
if (first == true && riadok[i][0] == '\n'){
|
|
break;
|
|
}
|
|
i++;
|
|
}
|
|
|
|
for (int r = 0; r < n - 1; r++){
|
|
for (int b = 0; b < strlen(riadok[b]); b++){
|
|
if (riadok[r][b] != '.' && riadok[r][b] != '1' && riadok[r][b] != '2' && riadok[r][b] != '3' && riadok[r][b] != '4' && riadok[r][b] != '5' && riadok[r][b] != '6' && riadok[r][b] != '7' && riadok[r][b] != '8' && riadok[r][b] != '9' && riadok[r][b] != '0' && riadok[r][b] != '\n' && riadok[r][b] != '\0'){
|
|
riadok[r][0] = '9';
|
|
riadok[r][1] = '.';
|
|
riadok[r][2] = '9';
|
|
riadok[r][3] = '.';
|
|
riadok[r][4] = '9';
|
|
riadok[r][5] = '.';
|
|
riadok[r][6] = '\0';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
i = 0;
|
|
|
|
for (int r = 0; r < n - 1; r++){
|
|
i = 1;
|
|
for (int b = 0; b < strlen(riadok[r]); b++){
|
|
if ((riadok[r][b] == '1' || riadok[r][b] == '2' || riadok[r][b] == '3' || riadok[r][b] == '4' || riadok[r][b] == '5' || riadok[r][b] == '6' || riadok[r][b] == '7' || riadok[r][b] == '8' || riadok[r][b] == '9' || riadok[r][b] == '0' || riadok[r][b] == '\0')){
|
|
i++;
|
|
|
|
if (strlen(riadok[r]) == i){
|
|
riadok[r][0] = '9';
|
|
riadok[r][1] = '.';
|
|
riadok[r][2] = '9';
|
|
riadok[r][3] = '.';
|
|
riadok[r][4] = '9';
|
|
riadok[r][5] = '.';
|
|
riadok[r][6] = '\0';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
for (int r = 0; r < n - 1; r++){
|
|
if (riadok[r][0] == '0'){
|
|
riadok[r][0] = '9';
|
|
riadok[r][1] = '.';
|
|
riadok[r][2] = '9';
|
|
riadok[r][3] = '.';
|
|
riadok[r][4] = '9';
|
|
riadok[r][5] = '.';
|
|
riadok[r][6] = '\0';
|
|
}
|
|
}
|
|
|
|
for (int r = 0; r < n - 1; r++){
|
|
for (int b = 0; b < strlen(riadok[r]); b++){
|
|
if (riadok[j][g] == '0' && riadok[j][g - 1] == '.'){
|
|
riadok[r][0] = '9';
|
|
riadok[r][1] = '.';
|
|
riadok[r][2] = '9';
|
|
riadok[r][3] = '.';
|
|
riadok[r][4] = '9';
|
|
riadok[r][5] = '.';
|
|
riadok[r][6] = '\0';
|
|
}
|
|
}
|
|
}
|
|
|
|
char riadok_pervyi[999];
|
|
i = 0;
|
|
|
|
for (int r = 0; r < n - 1; r++){
|
|
for (int b = 0; b < strlen(riadok[r]); b++){
|
|
if (riadok[r][b] == '\n'){
|
|
riadok[r][b] = '.';
|
|
}
|
|
if (riadok[r][b] != '\0'){
|
|
riadok_pervyi[i] = riadok[r][b];
|
|
i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
riadok_pervyi[i] = '\0';
|
|
int len = strlen(riadok_pervyi);
|
|
int c = 0;
|
|
for (int r = 0; j < len; r++){
|
|
if (riadok_pervyi[r] == '.'){
|
|
c++;
|
|
}
|
|
}
|
|
|
|
char *endptr = NULL;
|
|
char *start = riadok_pervyi;
|
|
int cisla[c];
|
|
i = 0;
|
|
|
|
while (start < (riadok_pervyi + len)){
|
|
cisla[i] = strtol(start, &endptr, 10);
|
|
if (cisla[i]){
|
|
start = endptr + 1;
|
|
}
|
|
else
|
|
{
|
|
break;
|
|
}
|
|
i++;
|
|
}
|
|
|
|
n = 0;
|
|
for (int r = 0; r < c; j = r + 3){
|
|
if (cisla[r + 1] > 12 || cisla[r + 1] < 0 || cisla[r] < 1 || cisla[r] > 31 || cisla[r + 2] < 1900 || cisla[r + 2] > 2100){
|
|
cisla[r] = 0;
|
|
cisla[r + 1] = 0;
|
|
cisla[r + 2] = 0;
|
|
n++;
|
|
}
|
|
}
|
|
|
|
for (int r = 0; r < c; r = r + 3){
|
|
if (cisla[r + 1] == 2 && cisla[r] == 29 && cisla[r + 2] % 4 != 0){
|
|
cisla[r] = 0;
|
|
cisla[r + 1] = 0;
|
|
cisla[r + 2] = 0;
|
|
n++;
|
|
}
|
|
}
|
|
|
|
for (int r = 0; r < c; r = r + 3){
|
|
if (cisla[r + 1] == 1 && cisla[r] > 0 && cisla[r] <= 31){
|
|
if (cisla[r] <= 24){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 24){
|
|
cisla[r] = cisla[r] + 7 - 31;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 2 && cisla[r] > 0 && cisla[r] <= 28 && cisla[r + 2] % 4 != 0){
|
|
if (cisla[r] <= 21){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 21){
|
|
cisla[r] = cisla[r] + 7 - 28;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 2 && cisla[r] > 0 && cisla[r] <= 29 && cisla[r + 2] % 4 == 0){
|
|
if (cisla[r] <= 22){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 22){
|
|
cisla[r] = cisla[r] + 7 - 29;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 3 && cisla[r] > 0 && cisla[r] <= 31){
|
|
if (cisla[r] <= 24){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 24){
|
|
cisla[r] = cisla[r] + 7 - 31;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 4 && cisla[r] > 0 && cisla[r] <= 30){
|
|
if (cisla[r] <= 23){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 23){
|
|
cisla[r] = cisla[r] + 7 - 30;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 5 && cisla[r] > 0 && cisla[r] <= 31){
|
|
if (cisla[r] <= 24){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 24){
|
|
cisla[r] = cisla[r] + 7 - 31;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 6 && cisla[r] > 0 && cisla[r] <= 30){
|
|
if (cisla[r] <= 23){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 23){
|
|
cisla[r] = cisla[r] + 7 - 30;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 7 && cisla[r] > 0 && cisla[r] <= 31){
|
|
if (cisla[r] <= 24){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 24){
|
|
|
|
cisla[r] = cisla[r] + 7 - 31;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 8 && cisla[r] > 0 && cisla[r] <= 31){
|
|
if (cisla[r] <= 24){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 24){
|
|
cisla[r] = cisla[r] + 7 - 31;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 9 && cisla[r] > 0 && cisla[r] <= 30){
|
|
if (cisla[r] <= 23){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 23){
|
|
cisla[r] = cisla[r] + 7 - 30;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 10 && cisla[r] > 0 && cisla[r] <= 31){
|
|
if (cisla[r] <= 24){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 24){
|
|
cisla[r] = cisla[r] + 7 - 31;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 11 && cisla[r] > 0 && cisla[r] <= 30){
|
|
if (cisla[r] <= 23){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 23){
|
|
cisla[r] = cisla[r] + 7 - 30;
|
|
cisla[r + 1]++;
|
|
}
|
|
}
|
|
|
|
else if (cisla[r + 1] == 12 && cisla[r] > 0 && cisla[r] <= 31){
|
|
if (cisla[r] <= 24){
|
|
cisla[r] = cisla[r] + 7;
|
|
}
|
|
|
|
else if (cisla[r] > 24){
|
|
cisla[r] = cisla[r] + 7 - 31;
|
|
cisla[r + 1] = 1;
|
|
cisla[r + 2]++;
|
|
}
|
|
}
|
|
|
|
if (cisla[r] != 0 && cisla[r + 1] != 0 && cisla[r + 2] != 0){
|
|
printf("%d.%d.%d\n\n", cisla[r], cisla[r + 1], cisla[r + 2]);
|
|
}
|
|
|
|
|
|
else if (cisla[r] == 0 && cisla[r + 1] == 0 && cisla[r + 2] == 0){
|
|
puts("Neplatny datum.");
|
|
}
|
|
}
|
|
} |