| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Vie 27 Feb, 2004 6:34 am Asunto: Obtener los dias que tiene el mes.... |
|
|
He estado viendo en la ayuda del builder... lo que necesito saber es saber la cantidad de dias que trae un mes de determinado año...
En la ayuda sale un metodo DaysInMonth(const word year,const word month), pero no encuentro el objeto que me permite el uso de dicho metodo...
lo otro que me gustaria es poder ver en que dia especificamente comenzará el mes... lunes... martes.. etc...
Espero que me puedan ayudar... no puedo ocupar el metodo que encontre en la ayuda...... plase...  |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 27 Feb, 2004 8:11 am Asunto: |
|
|
te puedo ayudar con lo siguiente
| Código: |
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
DiasMes=31;
break;
case 4: case 6: case 9: case 11:
DiasMes=30;
break;
case 2:
if( (Y1%4==0) && (Y1 % 100 !=0) || (Y1%400==0))
DiasMes=29;
else
DiasMes=28;
break;
|
despues de eso utiliza la funcion DayOfMonth, que te regresa el dia del mes, y realizando una pequeña funcion para detectar el dia, en que esta, empezando por 0=domingo, 1=lunes etc..
saludos.. _________________
 |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 27 Feb, 2004 12:34 pm Asunto: |
|
|
Suponiendo que la fecha la tego guardada en una variable dMiFecha, yo lo haría así:
| Código: | Word Year, Month, Day;
TDateTime dFecha;
AnsiString cDias[7] = {"Dom.","Lun.","Mar.","Mier.","Juev.","Vier.","Sab."};
DecodeDate(dMiFecha, Year, Month, Day);
if (Month == 12)
{
Year ++;
Month = 0;
}
dFecha = EncodeDate(Year, Month + 1, (Word)StrToInt("01")) - 1;
DecodeDate(dFecha, Year, Month, Day);
ShowMessage("útimo día del mes " + StrToDate(dMiFecha) + " es el " + Day + ", y es " + cDias[DayOfWeek(dFecha)]; |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
jaquemate Lt Cmdr


Registrado: 30 Sep 2002Mensajes: 110
|
Publicado: Vie 27 Feb, 2004 5:16 pm Asunto: |
|
|
La función DaysInAMonth no es un método que pertenezca a un objeto, sino una función cuya sintaxis es:
| Código: | Word __fastcall DaysInAMonth(const Word AYear, const Word AMonth); |
Para utilizar esta función, deberás poner el siguiente include en tu código:
| Código: | #include <dateutils.hpp> |
Un saludo. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 27 Feb, 2004 9:33 pm Asunto: |
|
|
Es cierto, aun que recuerdo, que existe una funcion que te regresa la cadena, es una funcion del Api, a la cual le pasas como parametro un Date(), y te regresa un AnsiString con la fecha..,
bueno todo es valido... _________________
 |
|
| Volver arriba |
|
 |
Cuato Cdt


Registrado: 31 Ene 2004Mensajes: 17Ubicación: Buenos Aires
|
Publicado: Vie 27 Feb, 2004 10:43 pm Asunto: |
|
|
| César C. Salazar González escribió: |
| Código: |
case 2:
if( (Y1%4==0) && (Y1 % 100 !=0) || (Y1%400==0))
DiasMes=29;
else
DiasMes=28;
break;
|
|
¿No alcanza con que sea divisible por 4?.
Creo que este falla para los años: 100, 200, 300, 500, 600, 700, etcétera.
¡Aludos!. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 28 Feb, 2004 1:30 am Asunto: |
|
|
Es una funcion, si te das cuenta, que depende de dos condiciones a un que una, esta formada por dos..
| Cita: |
// con 1 con 2
// sub con1 sub con 2
if(
(Y1%4==0) && (Y1 % 100 !=0)
|| (Y1%400==0))
|
por eso son 3 condiciones..
saludos.. _________________
 |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Sab 28 Feb, 2004 8:49 pm Asunto: y no saben como capturar el dia dando como datos...... |
|
|
hola y gracias por las respuestas.. estoy ocupando la funcion, mi problema era que incluia un .h, y no me percate que era un hpp.... la cosa ahora es que me cuesta encontrar la manera de teniendo el año, el mes y un determinado dia del mes... por ejemplo un 22... como sabes a que dia pertenece... es decir.. un lunes... martes.. etc...?
aunque en realidad lo que me gustaria saber es como saber con que dia comienza el mes... graciie |
|
| Volver arriba |
|
 |
jaquemate Lt Cmdr


Registrado: 30 Sep 2002Mensajes: 110
|
Publicado: Sab 28 Feb, 2004 9:33 pm Asunto: |
|
|
Para saber el día de la semana, utiliza la función:
| Código: | Word __fastcall DayOfTheWeek(const System::TDateTime AValue); |
que te devuelve un número del 1 al 7 correspondiente al día de la semana.
Un saludo. |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Lun 01 Mar, 2004 3:35 am Asunto: gracias.... muuuchas gracias... |
|
|
| gracias a todos... al fin logre crear lo que tenia pensado... es una especie de malla de planificacion... en la que dependiendo del mes genera un plan donde en cada casilla tiene un codigo a seguir por und eterminado rut o persona...quedo bueno... muuchas gracias,.... |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
lachicabit Invitado
|
Publicado: Mar 02 Mar, 2004 12:58 am Asunto: |
|
|
creo que cuato tiene razon alcanza con comprobar que el anio es divisble por cuatro para saber que es bisiesto. para los anios que el menciona arroja 28 cuando deberia arrojar 29
por otra parte yo tampoco encontre fichero include donde esta? |
|
| Volver arriba |
|
 |
jaquemate Lt Cmdr


Registrado: 30 Sep 2002Mensajes: 110
|
Publicado: Mar 02 Mar, 2004 12:59 am Asunto: |
|
|
x Angel
Si te refieres al "dateutils.hpp", yo lo tengo en
| Código: | C:\Archivos de programa\Borland\CBuilder6\Include\Vcl\dateutils.hpp |
Igual tienes una versión anterior del C++Builder y por eso no aparece.
Un saludo. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
|