| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
chechi123
Registrado: 29 Ago 2007 Mensajes: 8
| Publicado: 01/10/2007 8:32 am | | | Título: problema en un while |
| hola tengo este codigo, la idea es sumarele dias a una fecha, entonces lo que hago es hallar los dias trascurridos desde el año 1 mes 1 dia 1 hasta la fecha que uno quiere que esta como ano, mes y dia. lo primero que hago es hallar la cantidad de bisisestos que hay desde la fecha 1/1/1 hasta la otra fecha luego los dias transcurridos desde comienzo de año de la fecha luego sumo eso mas los dias transcurridos desde el 1/1/1 has el 31 de dic del ano anterior ala fecha que uno ingresa osea 365*(ano-1), + el numero de dias que se le van a sumar en el codigo no lo sumo porque estaba haciendo una prueba para ver que sin sumarle n dias mas deberia darme la fecha actual
ya saque el ano el problema es el mes porque calculo los meses que han transcurrido desde la fecha 1/1/1 hasta la acutual que es mestemp y uso un while para saber en que mes se esta lo que se supone que debe hacer es hasta mestemp aumentar temp y mesnuevo si mesnuevo llega a 12 debe volver a empezar pero temp si continua hasta mestemp
el problema es que si ingreso la fecha año 1 mes 2 dia 1 me dice que es el mes 2 osea esta bien pero si ingreso año 1 mes 12 dia 31 me dice que es el mes 0 y no se proque lo he hecho en papel varias veces pero no encuentro el error. para hallar el dia tiodavia no tengo nada por eso le deje simplemente que le asigne 1.. ojala puedan ayudarme gracias..
este es el codigo, antes hay un procediemiento que pide la fecha como ano mes y dia
int sumar (int numdias) { int bisiestos = 0; int dias, mesnuevo=0,anonuevo,dianuevo,mestemp;
for (int i=1 ; i<ano;i++) { if (esBisiesto(i)) bisiestos += 1; }
dias = diasTranscurridos(); dias = dias + (ano-1)*365 + bisiestos ;
anonuevo = ((dias - bisiestos)/365) + 1; mestemp = ((dias*12)/365) + 1; int temp = 0; while (temp < mestemp) { mesnuevo++; temp++; if (mesnuevo>12) { mesnuevo =0; }
}
dia = 1;
return mesnuevo; |
| | Volver arriba | |  | digies

Registrado: 18 Nov 2005 Mensajes: 176 Ubicación: Cono Sur
| Publicado: 01/10/2007 1:50 pm | | | Título: |
| Hola
Te indico algunos errores importantes en tu códgo:
1- Debes cerrar la función al final del return con '}'
2- int temp la debes declarar arriba , donde están declaradas las otras variables de tu función.
Cuando edites un código no olvides de colocarlo dentro de las etiquetas [ code]tu_código[ /code] para que pueda entenderse mejor.
Un saludo |
| | Volver arriba | |  | digies

Registrado: 18 Nov 2005 Mensajes: 176 Ubicación: Cono Sur
| Publicado: 01/10/2007 2:14 pm | | | Título: |
| Más errores...
3- La variable ano no está declarada. 4- Es dia o dias??
Por otra parte, tu código (C o C++?) es un poco difícil de seguir porque no se sabe si implementase bien la función esBisiesto -entre otros-. Sería más sencillo analizarlo si hubieras colocado los otros módulos para un buen seguimiento del mismo y así saber a ciencia cierta dónde está el error.
Un saludo |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |