Como calcular duração de evento em C?

Programa que receba a data e horário de início e término de um evento. A data e horário devem ser coletadas em uma única entrada seguindo o seguinte padrão: “DD/MM HH:mm”. Onde os DD não pode ser maior que 31, MM não pode ser maior que 12, HH não podem ser maiores que 23 e mm não pode ser maior que 59. Após receber as duas entradas do programa, o programa deve calcular quantos meses, dias, horas e minutos durou o evento.

meu código até então:

#include<stdio.h>

int main(){

    int minuto, hora, mes, dia;

    int di, mi, hi, mni;

    int df, mf, hf, mnf;

    printf("Digite a data e a hora do inicio do evento: ");

    scanf("%2s / %2s %2s : %2s", &di, &mi, &hi, &mni);

    getchar();

    printf("Digite a data e a hora do final do evento: ");

    scanf("%2s / %2s %2s : %2s", &df, &mf, &hf, &mnf);

    minuto = mnf - mni;

    hora = hf - hi;

    dia = df - di;

    mes = mf - mi;

    printf("O evento durou % mes(es), %d dia(s), %d hora(s) e %d minuto(s)", mes,dia,hora,minuto);

    return 0;

}

3 Respostas

Classificação
  • Há 10 meses
    Resposta favorita

    #include <stdio.h>

    void duracao(int hi, int mi, int hf, int mf, int* h, int* m) {

        *m = mf - mi;

        if (*m < 0) {

            *m += 60;

            hf--;

        }

        *h = hf - hi;

        if (*h < 0)

            *h += 24;

    }

    int main() {

        int hora_ini, min_ini, hora_fim, min_fim, hora, min;

        printf("Informe o inicio (hh:mm): ");

        scanf("%d:%d", &hora_ini, &min_ini);

        printf("Informe o fim (hh:mm): ");

        scanf("%d:%d", &hora_fim, &min_fim);

        duracao(hora_ini, min_ini, hora_fim, min_fim, &hora, &min);

        printf("Início: %.2d:%.2d\tFim: %.2d:%.2d\tDuração: %d:%.2d\n", hora_ini, min_ini, hora_fim, min_fim, hora, min);

        return 0;

    }

  • Anônimo
    Há 10 meses

    uma variável X indica a suposta serialização do evento sendo adaptado a termos de calendário,

    manifestações sociais contabilizadas do ato manipulador se é atribuido com variável Y,

    sendo a persuasão dentre os fatores DD/MM e HH:mm:ss se é ponderado razões indutoras ditadas e atribuidas com variável Z, criando assim um sistema tridimensional do evento;

    calcula-se induções culturais aos denominadores selecionados, então::

    X = cultura \ títulos sociais + políticas;

    Y = local \ conhecimento + culturabilidade;

    Z = Y + músicas x conversações \ X + sociedade - familiares - 1;

    resultado : comentou no yahoo respostas;

  • Anônimo
    Há 10 meses

    nsei descuuuuuuuuuulpe

Tem mais perguntas? Obtenha suas respostas perguntando agora.