-
Lenguaje
C
-
Descripción
Calendario
Para cambiar de mes presione las teclas ← (flecha izquierda) y → (flecha derecha).
Para cambiar de año presione las teclas ↑ (flecha arriba) y ↓ (flecha abajo).
Para terminar el programa presione la tecla ESC.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#if defined(__BORLANDC__) || defined(__TURBOC__) || defined(__WATCOMC__)
#define FLECHA 0
#else
#define FLECHA -32
#endif
#ifdef __TURBOC__
#define _getch getch
#endif
#define BORDE "\315\315\315\315\315\315\315\315\315"
const int year_regular [] = {0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5};
const int year_bisiesto[] = {0, 3, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6};
const char *nombres[] = {
" Enero ", " Febrero ", " Marzo ", " Abril ",
" Mayo ", " Junio ", " Julio ", " Agosto ",
"Septiembre", " Octubre ", "Noviembre ", "Diciembre "};
int main (void)
{
int meses[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char tecla;
time_t segundos = time (NULL);
struct tm *hoy = localtime (&segundos);
int i, dia, year = hoy->tm_year+1900, mes = hoy->tm_mon;
do {
meses[1] = (year%4==0 && year%100!=0) || year%400==0 ? 29 : 28;
dia = 1 - ((year - 1) % 7 + ((year - 1) / 4 - (3 * ((year - 1) / 100 + 1)) / 4) % 7 +
(meses[1]==28 ? year_regular[mes] : year_bisiesto[mes]) + 1) % 7;
system ("cls");
printf (" \21%s\20 \36%d\37\n", nombres[mes], year);
printf ("\311" BORDE "\313" BORDE "\313" BORDE "\313" BORDE "\313" BORDE "\313" BORDE "\313" BORDE "\273\n");
printf ("\272 Domingo \272 Lunes \272 Martes \272Mi\202rcoles\272 Jueves \272 Viernes \272 S\240bado \272\n");
printf ("\314" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\271\n");
while (dia<=meses[mes])
{
for (i=0; i<7; i++, dia++)
if (dia<1 || dia>meses[mes])
printf ("\272 ");
else
printf ("\272 %2d ", dia);
printf ("\272\n");
if (dia<=meses[mes])
printf ("\314" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\271\n");
else
printf ("\310" BORDE "\312" BORDE "\312" BORDE "\312" BORDE "\312" BORDE "\312" BORDE "\312" BORDE "\274\n");
}
printf ("Presione \033 y \032 para cambiar de mes.\n");
printf ("Presione \030 y \031 para cambiar de a\244o.\n");
printf ("Presione ESC para salir.\n");
do {
tecla = (char) _getch ();
} while (tecla!=FLECHA && tecla!=27);
if (tecla==FLECHA)
switch (_getch())
{
case 72:
year++;
break;
case 80:
year--;
break;
case 77:
if (mes<11)
mes++;
else
{
year++;
mes = 0;
}
break;
case 75:
if (mes!=0)
mes--;
else
{
year--;
mes = 11;
}
break;
}
} while (tecla!=27);
return EXIT_SUCCESS;
}
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#if defined(__BORLANDC__) || defined(__TURBOC__) || defined(__WATCOMC__)
#define FLECHA 0
#else
#define FLECHA -32
#endif
#ifdef __TURBOC__
#define _getch getch
#endif
#define BORDE "\315\315\315\315\315\315\315\315\315"
const int year_regular [] = {0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5};
const int year_bisiesto[] = {0, 3, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6};
const char *nombres[] = {
" Enero ", " Febrero ", " Marzo ", " Abril ",
" Mayo ", " Junio ", " Julio ", " Agosto ",
"Septiembre", " Octubre ", "Noviembre ", "Diciembre "};
int main (void)
{
int meses[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char tecla;
time_t segundos = time (NULL);
struct tm *hoy = localtime (&segundos);
int i, dia, year = hoy->tm_year+1900, mes = hoy->tm_mon;
do {
meses[1] = (year%4==0 && year%100!=0) || year%400==0 ? 29 : 28;
dia = 1 - ((year - 1) % 7 + ((year - 1) / 4 - (3 * ((year - 1) / 100 + 1)) / 4) % 7 +
(meses[1]==28 ? year_regular[mes] : year_bisiesto[mes]) + 1) % 7;
system ("cls");
printf (" \21%s\20 \36%d\37\n", nombres[mes], year);
printf ("\311" BORDE "\313" BORDE "\313" BORDE "\313" BORDE "\313" BORDE "\313" BORDE "\313" BORDE "\273\n");
printf ("\272 Domingo \272 Lunes \272 Martes \272Mi\202rcoles\272 Jueves \272 Viernes \272 S\240bado \272\n");
printf ("\314" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\271\n");
while (dia<=meses[mes])
{
for (i=0; i<7; i++, dia++)
if (dia<1 || dia>meses[mes])
printf ("\272 ");
else
printf ("\272 %2d ", dia);
printf ("\272\n");
if (dia<=meses[mes])
printf ("\314" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\316" BORDE "\271\n");
else
printf ("\310" BORDE "\312" BORDE "\312" BORDE "\312" BORDE "\312" BORDE "\312" BORDE "\312" BORDE "\274\n");
}
printf ("Presione \033 y \032 para cambiar de mes.\n");
printf ("Presione \030 y \031 para cambiar de a\244o.\n");
printf ("Presione ESC para salir.\n");
do {
tecla = (char) _getch ();
} while (tecla!=FLECHA && tecla!=27);
if (tecla==FLECHA)
switch (_getch())
{
case 72:
year++;
break;
case 80:
year--;
break;
case 77:
if (mes<11)
mes++;
else
{
year++;
mes = 0;
}
break;
case 75:
if (mes!=0)
mes--;
else
{
year--;
mes = 11;
}
break;
}
} while (tecla!=27);
return EXIT_SUCCESS;
}