Programación de impresión Vc
/*Año: 2012
****Enero*****
Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sábado
p>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
Pulsa cualquier tecla para continuar...
****Febrero*****
p>Domingo Lunes Martes Miércoles Jueves Viernes Sábado
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
Pulsa cualquier tecla para continuar...
****Marzo*****
Domingo Lunes Martes Miércoles Jueves Viernes Sábado
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
Por favor presione alguna clave para continuar...
****Abril*****
Domingo Lunes Martes Miércoles Jueves Viernes Sábado
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
Presiona cualquier tecla para continuar...
*/
# include ltstdio.h gt
# include ltstdlib .h gt
int JudgeLeapYear(int); //Juzga si es un año bisiesto.
int MonthDay(int m, int y); //Devuelve el número de días de este mes.
void print header(void); //Encabezado de salida
int FirstWeek(int m, int y); Devuelve el día de la semana en el que es el 1 de este mes. es.
void print mes(int m); //Título del mes de salida
int main(int argc, char* argv[]) {
int año, Mes, día, prueba, semana;
printf("Año:");
scanf("d ", amp año);
for(mes = 1; meslt= 12; mes) {
prueba = 1;
imprimirMes(mes);
imprimir encabezado();
semana = Primera Semana(mes, año);
if (semana lt6){// Genera la primera semana de cada mes.
for(I = 0; i lt=semana; i) {
putchar('\t');
prueba;
}
}
for(I = 1; i lt= MonthDay (mes, año); i, prueba) {
//Cada uno La producción mensual no es la primera semana.
printf("d\t ",I);
if(prueba 7 == 0)poner char('\n');
}
putchar('\n');
System("pause"); //Pausa para observar la salida.
}
Devuelve 0;
}
//Determina si se ejecuta el año.
int JudgeLeapYear(int y) {
return((y 4 == 0) amp; amp(y100) || (y400 == 0))? 1: 0;
}
//¿Qué día de la semana es el 1 de este mes?
int Primera Semana(int mes, int año) {
if (mes lt3) {
mes = 12
año - ;
}
return(1 2 *mes 3*(mes 1)/5 año año/4 - año/100 año/400) 7;
}
//Cuántos días tiene enero
int MonthDay (int mes, int año){
int d;
Switch(mes){
Caso 1:
Caso 3:
Caso 5:
Caso 7:
Caso 8:
Caso 10:
Caso 12: d = 31; roto;
Caso 4:
Caso 6:
Caso 9:
Caso 11: d = 30; roto;
Caso 2: d = JudgeLeapYear(año)? 29:28;Pausa;
}
Regresar d;
}
//Imprimir título del calendario
void printHeader(void) {
printf(" s \ t s \ t s \ t s \ t s \ t s \ t s \ t s \ t \ n ", " Sol ", " Lun ", " Mar ", " Mié ", " Jueves ", " Viernes ", " Sábado ");
}
//Imprimir el mes
void printMonth(int m) {
Interruptor (m) {
Valor predeterminado:
Caso 1: puts("\t*****Enero* * * * *) ; Break;
Caso 2: Opción de venta (" \t****Febrero* * * * *); Break;
Caso 3: Opción de venta (" \ t *****Marzo* * * * *); Descanso;
Caso 4: Opción de venta (" \ t * * * * *Mes* * * * *); Descanso;
p>Caso 5: Opción de venta ("\t*****posible* * * * *); Break;
Caso 6: Opción de venta (" \t* * * * * Mes* * * * *); Descanso;
Caso 7: Opción de venta ("\t * * * * *Mes* * * * *); Descanso;
Caso 8 : Opción de venta("\t * * * * *mes* * * * *); Descanso;
Caso 9: Opción de venta(" \t * * * * *mes* * * * *) ;Break;
Caso 10: puts("\t*****Octubre* * * * *);Break;
Caso 11: puts(" \t * * * * * Noviembre * * * * *); Descanso
Caso 12: Opción de venta ("\t * * * * * * Mes * * * * *); Descanso;
}
}