calendario
Publicado por punkpelao (1 intervención) el 28/09/2008 14:25:43
Hola nesecitoe scribir un programa, haciendo uso de funciones, que visualice un calendario de la forma:
donde el usuario indica únicamente el mes y el año
solo tengo las fórmulas que me permiten conocer el día de la semana correspondiente a una fecha
para los meses de enero o febrero:
para los otros meses:
Donde a=año; m=mes; d=día;
tambien se que n mod 7 indica el día de la semana osea (1=lunes, 2= martes, etc.
nose como empezarlo lo que tengo lo tengo sin funciones pero no me corre bien
es:
lo que pasa es que no se como hacerlo con funciones y ademas el codigo tiene errores por que en el mes de septiembre deberia empezar dia lunes el 1 y me arroja que empieza dia miercoles
bueno espero que me puedan a ayudar a hacer esto pero con funciones en dev c++ si es posible bye
1
2
3
4
5
6
L M M J V S D
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
solo tengo las fórmulas que me permiten conocer el día de la semana correspondiente a una fecha
para los meses de enero o febrero:
1
n= a + 31 *(m-1) + d (a-1) div 4 – 3 * ((a+99) div 100) div 4;
1
n= a + 31 * (m-1) + d - (4*m + 23) div 10 + a div 4 - (3*(a div 100 + 1)) div 4;
Donde a=año; m=mes; d=día;
tambien se que n mod 7 indica el día de la semana osea (1=lunes, 2= martes, etc.
nose como empezarlo lo que tengo lo tengo sin funciones pero no me corre bien
es:
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include<stdio.h>
#include<stdlib.h>
int a,m,d=1,n,i,j,h;
int calen[5][7];
main(){
printf("ingrese mes: ");
scanf("%i",&m);
printf("
");
printf("ingrese anio: ");
scanf("%i",&a);
printf("
");
if(m==1|| m==2){
n= a+31*(m-1) + d*(a-1)/4 - 3*((a+99)/100)/4;
}
if(m>2)
d=0;
{
n=a+(31*(m-1))+d-((4*m + 23)/10)+(a/4)-((3*(a/100 + 1))/4);
}
printf("%i",n);
n=n%7;
printf("
");
printf("%i",n);
printf("
");
j=n;
printf("
");
if(m==2){
for(i=0;i<5;i++){
for(j=n;j<7;j++){
calen[i][j]=d;
n=0;
d=d+1;
if(d==29){
j=7;
}
}
}
}
if(m%2==0 && m!=2 && m!=8 && m!=10 && m!=12){
for(i=0;i<5;i++){
for(j=n;j<7;j++){
calen[i][j]=d;
n=0;
d=d+1;
if(d==31){
j=7;
}
}
}
}
if(m%2==0 && m!=2){
if(m==8||m==10||m==12){
for(i=0;i<5;i++){
for(j=n;j<7;j++){
calen[i][j]=d;
n=0;
d=d+1;
if(d==32){
j=7;
}
}
}
}
}
if(m%2!=0 && m!=2 && m!=8 && m!=10 && m!=12 && m!=9 && m!=11){
for(i=0;i<5;i++){
for(j=n;j<7;j++){
calen[i][j]=d;
n=0;
d=d+1;
if(d==32){
j=7;
}
}
}
}
if(m%2!=0 && m!=2){
if(m==9||m==11){
for(i=0;i<5;i++){
for(j=n;j<7;j++){
calen[i][j]=d;
n=0;
d=d+1;
if(d==31){
j=7;
}
}
}
}
}
for(i=0;i<5;i++){
for(j=0;j<7;j++){
printf("%i ",calen[i][j]);
}
printf("
");
}
getchar();
getchar();
}
lo que pasa es que no se como hacerlo con funciones y ademas el codigo tiene errores por que en el mes de septiembre deberia empezar dia lunes el 1 y me arroja que empieza dia miercoles
bueno espero que me puedan a ayudar a hacer esto pero con funciones en dev c++ si es posible bye
Valora esta pregunta


0