Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2013, 12:22
Avatar de kripal6
kripal6
 
Fecha de Ingreso: mayo-2009
Ubicación: Barna
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Programa C# Reloj

Buenas tengo que hacer una especie de Reloj en C# pero por motivos de trabajo he faltado un par de horas de clase y no me pude enterar muy bien de como se hace...

Tengo que hacer una aplicacion de consola c# que me pida cuantos minutos y segundos quiero incrementar la hora Actual, a partir de los datos introducidos tiene que empezar a contar hasta que el tiempo que a puesto el usuario acaba.

Requisitos :

-R1: El reloj mostrara hh:mm:ss justificando a la izquiera con 0 en caso de que horas, minutos o segundos sea <10

-R2: Hay que usar TUPLAS para guardar horas minutos y segundos en formato : h, m y s la tupla se llamará "Tiempo"

-R3: Hay que usa la pausa siguiente :
static void Pausa(int segons) {
int x = Environment.TickCount;
while (Environment.TickCount < x + 1000*segons) ; }

-R4: Implementar una funcion llamada IncrementarUnSegundo de la siguente manera :
public static Tiempo IncrementarUnSegundo(Tiempo t)

que devuelve la tupla t incrementada con un segundo.

-R5: Hay que usar una funcion llamada DoIncrementoTiempo(int minutos, int segundos)
que hace la funcion de mostrar, incrementar, mostrar, incrementar tantos segundos como indiquen

-R6: El Main pedirá cuantos minutos y segundos (validados en positivo o cero y entre 0-59) y llamará a la acción indicada en el requisito 5

Finalmente para obtener la hora actual usaremos :
DateTime d = DateTime.Now;
Console.WriteLine(d.Hour);
Console.WriteLine(d.Minute);
Console.WriteLine(d.Second);

De momento tengo :

class Program
{
public struct Tiempo
{
public int h;
public int m;
public int s;
}
static void Main(string[] args)
{
DateTime d = DateTime.Now;
int m=0,s=0;
Tiempo myReloj;
Console.WriteLine("Cuantos Minutos quiere incrementar?");
m = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Cuantos Segundos quiere incrementar?");
s = Convert.ToInt32(Console.ReadLine());
myReloj.m = m;
myReloj.s = s;
}
static void Pausa(int segons) // hace una pasa de "x" segundos
{
int x = Environment.TickCount;
while (Environment.TickCount < x + 1000 * segons) ;
}

public static Tiempo IncrementarUnSegundo(Tiempo t)
{
++t.s;
if (t.s > 60)
{
++t.m;
t.s = 0;
}
if (t.m > 60)
{
++t.h;
t.m = 0;
}
if (t.h > 24 && t.m > 60 && t.s > 60)
{
t.h = 0;
t.m = 0;
t.s = 0;
}
return t;
}

public static Tiempo DoIncrementoTiempo(int horas,int minutos, int segundos)
{
Tiempo incremento;
incremento.h = horas;
incremento.m= minutos;
incremento.s = segundos;
return incremento;
}
}