I need to find minimal date(year , month , day, hours , minutes , seconds), my code is working, but it look's terrible and it's very long. What can I do to avoid this ladder to make my code readable? ( I want to use only stdio.h )
#include <stdio.h>
typedef struct DateTime_s {
int year , month , day ;
int hours , minutes , seconds ;
} DateTime ;
void DataTime(const DateTime *mas , int x){
int i;
struct DateTime_s min={40000,400000,4000000,400000,400000,4000};
for(i=0;i<x;i++){
if(mas[i].year<min.year){
min=mas[i];
}
else if(mas[i].year==min.year){
if(mas[i].month<min.month){
min=mas[i];
}
else if(mas[i].month==min.month){
if(mas[i].day<min.day){
min=mas[i];
}
else if(mas[i].day==min.day){
if(mas[i].hours<min.hours){
min=mas[i];
}
else if(mas[i].hours==min.hours){
if(mas[i].minutes<min.minutes){
min=mas[i];
}
else if(mas[i].minutes==min.minutes){
if(mas[i].seconds<min.seconds){
min=mas[i];
}
else if(mas[i].seconds==min.seconds){
min=mas[i];
}
}
}
}
}
}
}
printf("%d %d %d %d %d %d",min.year,min.month,min.day,min.hours,min.minutes,min.seconds);
}
int main() {
int x,i;
struct DateTime_s mas[50001];
scanf("%d",&x);
for(i=0;i<x;i++){
struct DateTime_s b;
scanf("%d %d %d %d %d %d",&b.year, &b.month,&b.day,&b.hours,&b.minutes,&b.seconds);
mas[i]=b;
}
DataTime(mas,x);
return 0;
}