Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Control ComboDate
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Control ComboDate 
 
buenas

estoy trabajando en un nuevo control que por medio de tres combobox se selecciona una fecha en un rango de la fecha actual a 100 años atrás.

estoy trancado un poco con el combo que lleva los días
pues al cambiar de mes y según el año elegido serán los números de días
pudiendo ser 28,29,30 o 31

al tener ese dato simplemente lleno la lista del combo del 1 al 30 si el mes elegido tuviera 30


alguien conoce alguna rutina para saber la cantidad de días que tiene un mes?

 combodate
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Control ComboDate 
 
v3ctor escribió: [Ver mensaje]
alguien conoce alguna rutina para saber la cantidad de días que tiene un mes?


...una posibilidad sería ésta:

Library "libglib-2.0"

' guint8 g_date_get_days_in_month (GDateMonth month, GDateYear year)
' Returns the number of days in a month, taking leap years into account.
Private Extern g_date_get_days_in_month(GDmonth As Integer, GDyear As Integer) As Byte


Public Sub Main()
 
 Dim num As Byte
 Dim mes As String
 Dim meses As String[] = [Null, "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
                         "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
 
  mes = "Febrero"
 
  num = g_date_get_days_in_month(meses.Find(mes), 2016)
  
  Print "El mes de "; mes; " contiene "; num; " dias."
  
End

 



 
última edición por vuott el Viernes, 22 Septiembre 2017, 00:23; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Control ComboDate 
 
...o solo Gambas:

Public Sub Form_Open()

  Dim annus As Integer = 1968
  Dim menses As Byte[] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  Dim add As Byte

   If (annus Mod 4 = 0 And annus Mod 100 <> 0) Or (annus Mod 400 = 0) Then add = 1
  
' Vamos a ver el total de los dias del mes de febrero del año 1968:
   Print menses[2] + add

End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Control ComboDate 
 
Private Sub Refrescar()

  Dim fech As Date
  Dim a As Integer
  Dim maxDia As Integer
  
  $Fecha = CDate($Mes & "/" & $Dia & "/" & $Anio & " 00:00:00")
  
  fech = CDate($Mes & "/27/" & $Anio & " 00:00:00")
  Print "fech=" & fech
  
  $fdate3.cbxDia.Clear()
  
  maxDia = CantidadDias(fech)
    
  For a = 1 To maxDia
    $fdate3.cbxDia.Add(a)
  Next
  
End

Private Sub CantidadDias(fech As Date) As Integer

  Dim a As Integer = 1
  Dim fechaX, EstaFecha As Date
  Dim mes, MaxDia As Integer
  Dim salida As Integer
  
  mes = Month(fech)
  salida = mes
'   MaxDia = mes
  
  Print "entrada mes=" & mes
  Print "entrada MaxDia=" & MaxDia
  
  Repeat
    
    If a = 1 Then
      fechaX = DateAdd(fech, gb.Day, 1)
    Else
      fechaX = DateAdd(fechax, gb.Day, 1)
    Endif
    
    Print "fechax=" & fechaX
    Print "MaxDia=" & MaxDia
    Print "mes=" & Month(fechax)
    
    If Month(fechaX) <> mes Then
      Print "dias=" & MaxDia
      Return MaxDia  
    Endif
    
    MaxDia = Day(fechax)
    Print "modificado MaxDia=" & MaxDia
    Inc a

  Until salida <> Mes
 
  Print "dias=" & MaxDia
  Return MaxDia
  
End


estoy probando con eso pero los meses de 29 días me dan problemas

gambas que tipo de calendario usa?
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron