Dev - C++ - calendario

 
Vista:

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:

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
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:
1
n= a + 31 *(m-1) + d (a-1) div 4 – 3 * ((a+99) div 100) div 4;
para los otros meses:
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:calendario

Publicado por cris... (1 intervención) el 18/10/2009 04:48:59
esta super bueno.... pero necesitó uno que cuando ingrese un año...
salgan todos los meses .... me explicó .... que se impriman todo los
meses al ingrsar el año correspondiente....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:calendario

Publicado por programador chingon (1 intervención) el 16/11/2022 19:57:40
NO CHIVE SU CODIGO ME REPROBARON
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar