13/01/2013, 12:22
|
| | | Fecha de Ingreso: mayo-2009 Ubicación: Barna
Mensajes: 5
Antigüedad: 15 años, 6 meses Puntos: 0 | |
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;
}
} |