Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Obtener los dias que tiene el mes....

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Obtener los dias que tiene el mes.... Responder citando

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... Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

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...
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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..
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: y no saben como capturar el dia dando como datos...... Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: gracias.... muuuchas gracias... Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

He estado buscando ese fichero include y no lo he encontrado en todo el disco duro. ¿Seguro que se llama así?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Efectivamente, porque yo uso Builder 5. ¡En fin! Tendré que seguir usando la rutina que había posteado antes.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.