Dev - C++ - Programa de fechas

 
Vista:

Programa de fechas

Publicado por juanmanuelmartinez (1 intervención) el 19/10/2014 23:44:29
Bueno
Les agradezco si em ayudan con el siguiente programa

Escriba un programa que reciba una fecha, por ejemplo (Agosto 6 de 2014) y presente en pantalla el día de la semana que corresponde con esa fecha. La implementación utilizará las funciones indicadas en la Tabla 2.
Tabla 1. Resumen de las funciones para el ejercicio 13
bool isLeapYear(int year);
Esta función retorna un valor verdadero si el año es bisiesto y falso si el año no es bisiesto. Un posible pseudocódigo para esta función es:
int getCenturyValue(int year);
Esta función toma los dos primeros dígitos del año (es decir, el siglo), este dato es dividido entre 4 y se almacena el residuo de la división. Posteriormente, se calcula la resta entre 3 y el residuo almacenado y el valor resultante es multiplicado por 2. Por ejemplo, el año 2013 se convierte en 20/4=5 con un residuo de cero. Luego, 3-0=3 y el retorno será 3x2=6.
int getYearValue(int year);
Esta función calcula un valor basado en los años que han transcurrido desde el inicio del siglo. Inicialmente, extrae los dos últimos dígitos del año (por ejemplo, extrae 08 de 2008). Luego, el valor extraído es dividido entre 4 y se descarta el residuo de la división (por ejemplo, 08/4=2). Posteriormente se retorna la suma de los dos últimos resultados (por ejemplo, 8+2=10)
Int getMonthValue(int month, int year)
Esta función retorna un valor con base en la Figura x y precisa del llamado de la función isLeapYear
Finalmente, para calcular el día de la semana se realiza la suma entre:
 Días indicados en la fecha
 Valores retornados por getMonthValue
 Valores retornados por getYearValue
 Valores retornados por getCenturyValue
El resultado de la suma es dividido entre 7 y se almacena el residuo. Un residuo de cero corresponde con el día Domingo, un residuo de uno corresponde con el día Lunes, etc. Residuos mayores a 6 corresponderán a Sábado.
La fecha Julio 4 de 2008 deberá ser procesada como (día del mes) + (getMonthValue) + (getYearValue)+ (getCenturyValue)=4+6+10+6=26. Luego 26/7=3 con un residuo de 5. El día 5 corresponde a viernes.
Su programa debe incluir una función getInput que solicite y capture los datos del usuario, específicamente mes, día y año. Esta función debe ser implementada con paso por referencia. El usuario puede ingresar los meses utilizando números decimales (1-12).
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
sin imagen de perfil
Val: 46
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa de fechas

Publicado por manuel isaac (62 intervenciones) el 21/10/2014 15:17:43
hermano yo tengo un codigo hecho en c...que dado un año (2008) ,mes,agosto(8) y dia (6) ..te indica que dia de la semana es¡¡¡ quizas pueda servirte ¡¡¡pero no es lo mismo que usted quiere¡'¡¡¡pero ahi va?

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
#include<stdio.h>
int main(void){
 
	int ano;
	int mes;
	int fecha;
	int dia;
	int modulo_mes;
 
	printf("año \n");
	scanf("%d",&ano);
	printf("mes:\n");
	scanf("%d",&mes);
	printf("dia:\n");
	scanf("%d",&fecha);
 
		if((ano%4==0) && (ano%100!=0) || (ano%400==0))
		{
				printf("bisiesto\n");
 
			if(mes==1)
				modulo_mes=0;
			if(mes==2)
				modulo_mes=3;
			if(mes==3)
				modulo_mes=4;
			if(mes==4)
				modulo_mes=0;
			if(mes==5)
				modulo_mes=2;
			if(mes==6)
				modulo_mes=5;
			if(mes==7)
				modulo_mes=0;
			if(mes==8)
				modulo_mes=3;
			if(mes==9)
				modulo_mes=6;
			if(mes==10)
				modulo_mes=1;
			if(mes==11)
				modulo_mes=4;
			if(mes==12)
				modulo_mes=6;
 
 
 
 
		}
		else
		{
			if(mes==1)
				modulo_mes=0;
			if(mes==2)
				modulo_mes=3;
			if(mes==3)
				modulo_mes=3;
			if(mes==4)
				modulo_mes=6;
			if(mes==5)
				modulo_mes=1;
			if(mes==6)
				modulo_mes=4;
			if(mes==7)
				modulo_mes=6;
			if(mes==8)
				modulo_mes=2;
			if(mes==9)
				modulo_mes=5;
			if(mes==10)
				modulo_mes=0;
			if(mes==11)
				modulo_mes=3;
			if(mes==12)
				modulo_mes=5;
 
 
 
		}
 
 
 
		dia=  ((ano-1)%7+ ((ano-1)/4 -(3*((ano-1)/100+1)/4))%7+modulo_mes+fecha%7)%7;
 
 
		printf("el dia de la semana es:\n");
		printf("dia:%d\n",dia);
		printf("0-domingo,1-lunes,2-martes,3-miercoles\n");
		printf("4-jueves,5-viernes,6-sabado\n");
 
}
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

Programa de fechas

Publicado por Miguel Ferrer (1 intervención) el 18/11/2017 12:47:40
Para que sirve modulo_mes ?

Que calculo haces en la formula para sacar los dias ?
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