Visual Basic - calcular el fin de mes

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

calcular el fin de mes

Publicado por SIMONOBAGI (3 intervenciones) el 26/08/2013 03:26:45
Buenas, de ante mano gracias por la ayuda

Excel tiene una unción llamada FIN.MES, que si le doy una fecha, ejemplo: 01/08/2013, me devuelve la fecha final de ese mes, es decir: 31/08/2013

si dígito 10/02/2013, me devuelve 28/02/2013 y así sucesivamente

como puedo hacer esto en Visual Basic?
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
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

calcular el fin de mes

Publicado por Antoni Masana (558 intervenciones) el 26/08/2013 09:38:22
Este codigo te muestra unaq solución

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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Private Sub Command1_Click()
    MsgBox Dias_del_Año(2006) & " días"
End Sub
 
Private Sub Command2_Click()
    MsgBox Dias_Del_Mes("05/09/2006") & " días"
End Sub
 
Private Sub Command3_Click()
    MsgBox es_Fin_de_Semana(Date)
End Sub
 
Private Sub Command4_Click()
    MsgBox fin_del_Mes(Date)
End Sub
 
Private Sub Command5_Click()
    MsgBox fin_de_Semana(Date)
End Sub
 
Private Sub Form_Load()
    Command1.Caption = " Cantidad de Dias de un Año "
    Command2.Caption = " Cantidad de Días de un Mes "
    Command3.Caption = " Fin de semana ? "
    Command4.Caption = " Obtener último día de un Mes "
    Command5.Caption = " Obtener último día de una semana "
End Sub
 
 
'Funciones
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
'Calcula la cantidad de días de un año
Public Function Dias_del_Año(ByVal valor As Variant) As Integer
    If IsDate(valor) Or _
       IsNumeric(valor) Then
            Dias_del_Año = IIf(saltarYear(valor), 366, 365)
    End If
End Function
 
Public Function saltarYear(ByVal valor As Variant) As Boolean
 
    On Error GoTo LocalError
 
    Dim iYear As Integer
 
    If IsDate(valor) Then iYear = Year(valor) Else iYear = CInt(valor)
 
    If TypeName(iYear) = "Integer" Then
        saltarYear = Day(DateSerial(iYear, 3, 0)) = 29
    End If
Exit Function
 
LocalError:
End Function
 
 
'Calcula la cantidad de días de un mes de una fecha determinada
'La fecha debe tener el formato mm/dd/yyyy
'Si no se pasa el parámetro se asume la fecha de hoy
 
Public Function Dias_Del_Mes(Optional ByVal Fecha As Variant) As Integer
 
 
    Dim mes As Integer, y  As Integer
 
    If IsMissing(Fecha) Then Fecha = Date
 
    If IsDate(Fecha) Then
        y = Year(Fecha)
        mes = Month(Fecha)
    ElseIf IsNumeric(Fecha) Then
        y = Year(Date)
        mes = IIf(Fecha > 0 And Fecha < 13, CInt(Fecha), 0)
    ElseIf VarType(Fecha) = vbString Then
        y = Year(Date)
        Select Case UCase(Left$(Fecha, 3))
            Case "FEB":                                             mes = 2
            Case "JAN", "MAR", "MAY", "JUL", "AUG", "OCT", "DEC":   mes = 1
            Case "APR", "JUN", "SEP", "NOV":                        mes = 4
        End Select
    End If
 
    Select Case mes
        Case 2:                     Dias_Del_Mes = IIf(saltarYear(Fecha), 29, 28)
        Case 1, 3, 5, 7, 8, 10, 12: Dias_Del_Mes = 31
        Case 4, 6, 9, 11:           Dias_Del_Mes = 30
    End Select
 
End Function
 
 
'Devuelve si un determinado día corresponde a un fin de semana
Public Function es_Fin_de_Semana(ByVal Fecha As Variant) As Boolean
 
    If IsDate(Fecha) Then
       If (Weekday(Fecha) = 1) Or (Weekday(Fecha) = 7) Then
          es_Fin_de_Semana = True
       End If
    End If
End Function
 
'Devuelve el último días del Mes
Public Function fin_del_Mes(Fecha As Variant) As Date
 
    If IsDate(Fecha) Then
        fin_del_Mes = DateAdd("m", 1, Fecha)
        fin_del_Mes = DateSerial(Year(fin_del_Mes), Month(fin_del_Mes), 1)
        fin_del_Mes = DateAdd("d", -1, fin_del_Mes)
    End If
 
End Function
 
'Devuelve el último día de la semana
 
Function fin_de_Semana(ByVal Fecha As Date) As Date
 
    If IsDate(Fecha) Then
        fin_de_Semana = FormatDateTime(Fecha - Weekday(Fecha) + 7, vbGeneralDate)
    End If
 
End Function


Sacado de esta página:

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/134-funciones-calcular-fecha.htm
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

calcular el fin de mes

Publicado por Carlos Alberto (262 intervenciones) el 16/09/2013 01:39:43
PDTA: No importa el día que ingreses, realmente lo que importa es conocer el mes.

Hola amigo
Bueno veo que te ayudaron con algo un poco extenso, te dejo un código que me invente cuando quise realizar lo mismo que tu, espero te sirva:
NOTA: Para realizar la prueba agrega un comboBox y un textBox en un formulario, luego pega este código,

Private Sub Form_Load()
Combo1.Clear
Combo1.AddItem "01 Enero"
Combo1.AddItem "02 Febrero"
Combo1.AddItem "03 Marzo"
Combo1.AddItem "04 Abril"
Combo1.AddItem "05 Mayo"
Combo1.AddItem "06 Junio"
Combo1.AddItem "07 Julio"
Combo1.AddItem "08 Agosto"
Combo1.AddItem "09 Septiembre"
Combo1.AddItem "10 Octubre"
Combo1.AddItem "11 Noviembre"
Combo1.AddItem "12 Diciembre"

Text1.Text = "2013"
End Sub

Private Sub Combo1_Click()
Dim iMes As Integer, sMes As String
iMes = Val(Combo1.Text)
iAno = Val(Text1.Text)
If iMes = 12 Then
iMes = 1
iAno = iAno + 1
Else
iMes = iMes + 1
End If
sMes = "1/" & iMes & "/" & iAno
MsgBox DateAdd("d", -1, CDate(sMes))
End Sub

Suerte amigo.
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
sin imagen de perfil

calcular el fin de mes

Publicado por SIMONOBAGI (3 intervenciones) el 16/09/2013 03:09:43
Carlos Alberto, muchas gracias por tu interés, pero te digo que no me arroja ningún resultado.
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
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

calcular el fin de mes

Publicado por El Viejo Charles (262 intervenciones) el 16/09/2013 03:12:08
Pues si lo ejecutas por si solo no te arrojara nada, analiza un poco el código que te coloque y saca provecho de este.
Saludos amigo.
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
sin imagen de perfil

calcular el fin de mes

Publicado por SIMONOBAGI (3 intervenciones) el 16/09/2013 04:01:00
Amigo, lo que pasa es que yo no soy programador, solo soy cacharrero jejeje,

además quiero decirte que estoy trabajando en visual basic 2010

te agradezco toda la información que me puedas brindar porque de programación estoy en cero (0)
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