• Sábado 21 de Diciembre de 2024, 14:49

Autor Tema:  Reto en C#.NET  (Leído 3433 veces)

th3r0rn

  • Miembro activo
  • **
  • Mensajes: 49
  • Nacionalidad: mx
    • Ver Perfil
    • http://imgeek.net
Reto en C#.NET
« en: Jueves 7 de Octubre de 2010, 19:19 »
0
hace ya rato que no pasaba pro aki, bueno en fin  voy a poner un reto para ver que tal la arman. Hay les va....

Tenemos una base de X con la tabla horarios la cual contiene el nombre de x empleados y tiene un compo llamado horario de tipo string donde se guarda su horario en dia, es decir, de lunes a viernes o de  lunes a domingo, recuerden es solo un campo no 2 y solo tenemos 3 registros en esa tabla, muestro el campo horario:
Lu-Vi
Lu-Dom
Lu-Sab

Vuestro trabajo es detectar el horario del empleaod cuando incie sesion, es decir si el empleado inicia checa su dia de entrada el sistema valida que este dentro del rango de dias a laborar, por ejemplo tenemos que el primer registro es:
Lu-Vi
si el empleado se registra un dia sabado el sistema le dira que esta fuera de su horario, ya que ese campo especifica al empleado que solo labora de Lunes a viernes.
Lo mismo para todos los demas campos.

Se puede esta informacion con el dia de la semana guardado en el sistema donde se ejcuta el programa, es decir con el dia configurado en dicha computadora o con el dato del dia de SQL SERVER.
Se los dejo a su criterio.
Pistas:
expresiones regulares
manejo de cadenas
replace
switch
Date
DateTime


Saludos y BUENA SUERTE!!!

LapizTolita

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Re: Reto en C#.NET
« Respuesta #1 en: Lunes 10 de Enero de 2011, 11:35 »
0
Primero mejorá tu escritura así se hace más ameno poder leerte, por cierto no entendí que te refieres con "Tenemos una base de X" ni tampoco porque limitas a 3 registros la tabla pero bueno respeto lo que decís.
Yo haría lo siguiente:
Código: C#
  1. static int stringTOday(string a)
  2.         {
  3.             switch (a)
  4.             {
  5.                 case "Dom":
  6.                     return 0;
  7.                 case "Lu":
  8.                     return 1;
  9.                 case "Ma":
  10.                     return 2;
  11.                 case "Mie":
  12.                     return 3;
  13.                 case "Jue":
  14.                     return 4;
  15.                 case "Vi":
  16.                     return 5;
  17.                 case "sab":
  18.                     return 6;
  19.                 default:
  20.                     return -1;
  21.             }
  22.         }
  23.         static void Main(string[] args)
  24.         {
  25.             var tabla = new Dictionary<string, string>(){
  26.                               {"fulano","Lu-Vi" },
  27.                               {"mengano","Lu-Dom" },
  28.                               {"romano","Lu-Sab" }
  29.                               };
  30.             Console.WriteLine("Ingrese el nombre a verificar");
  31.             string aux = "", nombAverificar = Console.ReadLine();
  32.             if (tabla.ContainsKey(nombAverificar))
  33.                 aux = tabla[nombAverificar];
  34.             else
  35.                 Console.WriteLine("El nombre no se encontro");
  36.             string[] dias=aux.Split('-');
  37.            int actual=DateTime.Now.Day;
  38.            if((actual<stringTOday(dias[1]))&&(actual>stringTOday(dias[0]))
  39.                Console.WriteLine("Valido");
  40.            else
  41.                Console.WriteLine("Dia no valido");
  42.         }
  43.