Seu jogo preferido envolve a atualização de estruturas que demora vários minutos. o jogo informa quantos

minutos faltam para terminar a atualização, mas você gostaria de saber exatamente quando é isso para ajustar um alarme.

faça um programa que lê o dia, hora e minuto atual, além de uma duração em minutos e escreve o resultado da adição da duração com o horário atual.

para simplificar, suponha que nunca vai ocorrer mudança de mês no processamento.

entradas (suponha cada valor numa linha):
1. o dia do horário atual (inteiro),
2. a hora do horário atual (inteiro entre 0 e 23),
3. o minuto do horário atual (inteiro entre 0 e 59),
4. a duração em minutos que a atualização precisa para terminar (inteiro).
saídas:

• o dia, hora e minuto em que a atualização termina.

exemplo de entrada:
3
20
12
1911

exemplo de saída:
5 4 3

1 Resposta

  • Isadoradp

    Em c#, utilizando timespans para representação dos intervalos:

    static void Main(string[] args)
      {    try      {        Console.WriteLine("Digite o dia atual:");        int dia = Convert.ToInt32(Console.ReadLine()); // le do console e converte para inteiro        if (dia <= 0 || dia > 31)        {          Console.WriteLine("Dia Incorreto!");          return;         }               
             Console.WriteLine("Digite a hora atual:");
             int hora = Convert.ToInt32(Console.ReadLine());         if (hora <= 0 || hora > 23)         {           Console.WriteLine("Hora Incorreta!");           return;         }
             Console.WriteLine("Digite o minuto atual:");         int minuto = Convert.ToInt32(Console.ReadLine());         if (minuto <= 0 || minuto > 59)         {           Console.WriteLine("Minuto Incorreto!");           return;         }
             Console.WriteLine("Digite a quantidade de adição em minutos:");         int addMin = Convert.ToInt32(Console.ReadLine());
             TimeSpan toAdd = TimeSpan.FromMinutes(addMin); // converte os minutos para timespan         TimeSpan initial = TimeSpan.FromMinutes((dia * 24 * 60) + (hora * 60) + (minuto)); // converte dia+hora+minuto para minutos e, posteriormente, para timespan         TimeSpan result = initial.Add(toAdd); // soma os timespans
             Console.WriteLine("Data somada: {0} {1}:{2}", (result.Days), (result.Hours), (result.Minutes)); // imprime dia/hora/minutos do timespan
             Console.ReadKey(); // aguarda interacao com teclado       }       catch       {         Console.WriteLine("Erro ao realizar leituras.");         return;       }    }

Clique aqui para adicionar a sua resposta.