fork download
  1. // ===++===
  2. //
  3. // OrtizOL
  4. //
  5. // ===--===
  6. /*============================================================
  7. //
  8. // Clase: DiasSemana.cs
  9. //
  10. // Propósito: Demuestra el uso de enumeraciones con
  11. // combinaciones.
  12. //
  13. ============================================================*/
  14.  
  15. using System;
  16.  
  17. namespace Articulos.Cap03
  18. {
  19. internal enum Dias
  20. {
  21. /**
  22.   * A cada constante se le asigna un valor binario.
  23.   * Este valor se genera a partir de realizar un
  24.   * desplazamiento a la izquierda. De uno por cada día.
  25.   **/
  26. Ninguno = 0,
  27. Domingo = 1,
  28. Lunes = 1 << 1, // Desplazamiento-izquierda 1 bit
  29. Martes = 1 << 2, // Desplazamiento-izquierda 2 bits
  30. Miercoles = 1 << 3, // Desplazamiento-izquierda 3 bits
  31. Jueves = 1 << 4, // Desplazamiento-izquierda 4 bits
  32. Viernes = 1 << 5, // Desplazamiento-izquierda 5 bits
  33. Sabado = 1 << 6,
  34. FinDeSemana = Viernes | Sabado | Domingo,
  35. Laborales = Lunes | Martes | Miercoles | Jueves | Viernes
  36. }
  37.  
  38. ///<summary>
  39. /// Representa un evento programable
  40. ///</summary>
  41. internal class Evento
  42. {
  43. ///<summary>
  44. /// Nombre del evento a programar.
  45. ///</summary>
  46. public string NombreEvento
  47. {
  48. get;
  49. set;
  50. }
  51.  
  52. ///<summary>
  53. /// Fecha en la que se realizará el evento.
  54. ///</summary>
  55. public DateTime HoraEvento
  56. {
  57. get;
  58. set;
  59. }
  60.  
  61. ///<summary>
  62. /// Días en los que se repite el evento.
  63. ///</summary>
  64. public Dias RepeticionEvento
  65. {
  66. get;
  67. set;
  68. }
  69. }
  70.  
  71. ///<summary>
  72. /// Clase de prueba de la enumeración `Dias` y la clase `Evento`.
  73. ///</summary>
  74. internal class PruebaDiasSemana
  75. {
  76. public static void Main()
  77. {
  78. // Crea un evento:
  79. Evento evento = new Evento();
  80. evento.NombreEvento = "Escribir acerca de enumeraciones en C#.";
  81. evento.HoraEvento = DateTime.Parse("Thursday 22 May 2014 13:17:19");
  82.  
  83. // Asignación de la repetición de los eventos:
  84. evento.RepeticionEvento = Dias.Lunes | Dias.Miercoles | Dias.Viernes;
  85.  
  86. // Muestra en la salida estándar los detalles del evento:
  87. Console.WriteLine("Resumen del evento:");
  88. Console.WriteLine("\tNombre evento: {0}", evento.NombreEvento);
  89. Console.WriteLine("\tFecha y hora evento: {0}", evento.HoraEvento);
  90. Console.WriteLine("\tDía(s) evento: {0}", evento.RepeticionEvento.ToString("F"));
  91. }
  92. }
  93. }
Success #stdin #stdout 0.08s 34928KB
stdin
Standard input is empty
stdout
Resumen del evento:
	Nombre evento: Escribir acerca de enumeraciones en C#.
	Fecha y hora evento: 5/22/2014 1:17:19 PM
	Día(s) evento: Lunes, Miercoles, Viernes