#include "date.h"
#include <stdio.h>

int distanza_ore(Ora o1, Ora o2){
    int res = (o1.ora-o2.ora)*60+(o1.minuti-o2.minuti);
    return res;
}

/* -1 se g<h, 0 se g=h, 1 se g>h */
int confronta_giorno(Giorno g, Giorno h){
    if (g.anno<h.anno) return -1;
    if (g.anno>h.anno) return 1;
    if (g.mese<h.mese) return -1;
    if (g.mese>h.mese) return 1;
    if (g.giorno<h.giorno) return -1;
    if (g.giorno>h.giorno) return 1;
    return 0;
}

/* 1 se sovrapposte anche parzialmente, 0 altrimenti */
int confronta_data(Data d1, Data d2){
    int dist, sign;
    if (confronta_giorno(d1.giorno, d2.giorno)!=0) return 0; /* Assunzione imprecisa */
    dist=distanza_ore(d1.ora,d2.ora);
    sign = dist>=0 ? 1 : 0;
    if (dist==0) return 1;
    if (sign==1) {
        if (d2.durata<dist) return 0;
        else return 1;
    } else {
        if (d1.durata<-dist) return 0;
        else return 1;
    }
}


void print_data(Data d1){
    printf("%d/%d/%d %d:%d, %d minuti\t", d1.giorno.giorno, 
            d1.giorno.mese, d1.giorno.anno, d1.ora.ora, d1.ora.minuti, d1.durata);
}

