Foros Perú

Retroceder   Foros Perú > Informática y Tecnología > Programación de Aplicaciones



Respuesta
 
Herramientas
Antiguo 15-jul-2007, 18:28   #1
Snoopy
Miembro SUSPENDIDO
 
Registrado: noviembre-2006
Ubicación: Lima
Edad: 28
Mensajes: 1.500
Predeterminado VB6 - Funcion para Calcular la Edad


Espero que mi funcion este libre de errores, sino, avisen
Verifica si el año es Bisiesto

Código PHP:
Public Function CalculaEdad(Nacio As Date) As String
    Dim MesesPasados 
As Integer
    Dim Anios 
As Integer
    Dim Meses 
As Integer
    Dim dias 
As Integer
 
    
If Nacio Now Then
        CalculaEdad 
"Fecha de Nacimiento Invalida"
        
Exit Function
    
End If
 
    
MesesPasados DateDiff("m"NacioNow)
 
    
Anios Int(MesesPasados 12)
    
Meses MesesPasados Mod 12
 
    
If Day(Now) >= Day(NacioThen
        dias 
Day(Now) - Day(Nacio)
    Else
        
Select Case Month(Now)
        Case 
12468911dias 31 Day(Nacio) + Day(Now)
        Case 
573012dias 30 Day(Nacio) + Day(Now)
        Case 
3:  dias Bisiento(Year(Now)) - Day(Nacio) + Day(Now)
        
End Select
        Meses 
Meses 1
        
If Meses = -1 Then
            Meses 
11
            Anios 
Anios 1
        End 
If
    
End If
    If 
Anios 1 Then
        CalculaEdad 
Anios " año "
    
Else
        
CalculaEdad Anios " años "
    
End If
 
    If 
Meses 1 Then
        CalculaEdad 
CalculaEdad Meses " mes y "
    
Else
       
CalculaEdad CalculaEdad Meses " meses y "
    
End If
 
    If 
dias 1 Then
        CalculaEdad 
CalculaEdad dias " dia"
    
Else
        
CalculaEdad CalculaEdad dias " dias"
    
End If
 
End Function
 
Private Function 
Bisiento(Anio As Integer) As Integer
    
If (Anio Mod 4) = 0 Then
        Bisiento 
29
    
Else
        
Bisiento 28
    End 
If
End Function 

Última edición por Snoopy; 15-jul-2007 a las 20:26 . Razón: Falto la Funcion Bisiesto :D
Snoopy está desconectado  
Antiguo 28-jul-2007, 13:47   #2
Adriancero
Miembro de Plata
 
Registrado: julio-2007
Ubicación: Lima - Miraflores
Edad: 22
Mensajes: 717
Creo que nadie entendio, lo supongo porque nadie a comentado hasta el momento, al menos yo no entendi...que bruto no? xD
Adriancero está desconectado  
Antiguo 28-jul-2007, 14:03   #3
Snoopy
Miembro SUSPENDIDO
 
Registrado: noviembre-2006
Ubicación: Lima
Edad: 28
Mensajes: 1.500
Esto es para los lurkers del foro, date cuenta cuantas visitas tiene, ademas, mira las veces que descargan los archivos atachados

Saludos
Snoopy está desconectado  
Antiguo 30-jul-2007, 18:16   #4
jscieza
Moderador Global
 
Avatar de jscieza
 
Registrado: septiembre-2006
Ubicación: Lima
Género: Hombre
Mensajes: 3.681
Algo así enseñan en Cibertec, en un curso del primer ciclo que se llama Introducción a la Algoritmia; pero usando Java. Por cierto, si mal no recuerdo tú también eres de Cibertec, ¿cierto?

Pienso que la programación sería maravillosa si no le metieran matemática...
__________________

jscieza está desconectado  
Antiguo 30-jul-2007, 18:28   #5
Snoopy
Miembro SUSPENDIDO
 
Registrado: noviembre-2006
Ubicación: Lima
Edad: 28
Mensajes: 1.500
Cita:
Iniciado por Goku Ver Mensaje
Algo así enseñan en Cibertec, en un curso del primer ciclo que se llama Introducción a la Algoritmia; pero usando Java. Por cierto, si mal no recuerdo tú también eres de Cibertec, ¿cierto?

Pienso que la programación sería maravillosa si no le metieran matemática...
La matematicas es lo de menos, aqui solo es lógica y nada más, si alguiente te pregunta: "Pasos para hacer una llamada", la mayoria dice: "Marcar y hablar" y lo programadores decimos:

Paso 1: Tener Numero a Llamar
Paso 2: Descolgar el Telefono
Paso 3: Esperar tono de marcado
Paso 4: Marcar Numero
Paso 5: Si el Número esta Ocupado entonces colgar, esperar 5 minutos y volver al Paso 2, si contesta entonces seguir Paso 6
Paso 6: Dar el mensaje
Paso 7: Colgar el Telefono

Es solo lógica, la matematicas entra pero en muy poco

Saludos
Snoopy está desconectado  
Antiguo 30-jul-2007, 18:34   #6
jscieza
Moderador Global
 
Avatar de jscieza
 
Registrado: septiembre-2006
Ubicación: Lima
Género: Hombre
Mensajes: 3.681
Cita:
Iniciado por ******* Ver Mensaje
La matematicas es lo de menos, aqui solo es lógica y nada más, si alguiente te pregunta: "Pasos para hacer una llamada", la mayoria dice: "Marcar y hablar" y los programadores decimos:

Paso 1: Tener Numero a Llamar
Paso 2: Descolgar el Telefono
Paso 3: Esperar tono de marcado
Paso 4: Marcar Numero
Paso 5: Si el Número esta Ocupado entonces colgar, esperar 5 minutos y volver al Paso 2, si contesta entonces seguir Paso 6
Paso 6: Dar el mensaje
Paso 7: Colgar el Telefono

Es solo lógica, la matematicas entra pero en muy poco

Saludos
Creo que has dado en el punto. Entonces parece que tengo que entrenar mejor mi lógica

Básicamente los problemas con las condiciones para validar situaciones de error. Uhm... adjunto el proyecto de Introducción a la Algoritmia para este ciclo, como para que lo veas y opines qué tal está.

Aunque para ti que te gusta la programación supongo que estará súper fácil.
__________________

jscieza está desconectado  
Antiguo 13-ago-2007, 22:29   #7
gian1200
Miembro Frecuente
 
Registrado: julio-2007
Ubicación: Lima
Mensajes: 79
Te falto lo más importante: tener telefono

Última edición por gian1200; 13-ago-2007 a las 22:32 .
gian1200 está desconectado  
Antiguo 14-ago-2007, 22:20   #8
esmitt
Miembro Nuevo
 
Registrado: agosto-2007
Mensajes: 17
Predeterminado Comentario

Cita:
Iniciado por ******* Ver Mensaje
Espero que mi funcion este libre de errores, sino, avisen
Verifica si el año es Bisiesto

Código PHP:
Public Function CalculaEdad(Nacio As Date) As String
    Dim MesesPasados 
As Integer
    Dim Anios 
As Integer
    Dim Meses 
As Integer
    Dim dias 
As Integer
 
    
If Nacio Now Then
        CalculaEdad 
"Fecha de Nacimiento Invalida"
        
Exit Function
    
End If
 
    
MesesPasados DateDiff("m"NacioNow)
 
    
Anios Int(MesesPasados 12)
    
Meses MesesPasados Mod 12
 
    
If Day(Now) >= Day(NacioThen
        dias 
Day(Now) - Day(Nacio)
    Else
        
Select Case Month(Now)
        Case 
12468911dias 31 Day(Nacio) + Day(Now)
        Case 
573012dias 30 Day(Nacio) + Day(Now)
        Case 
3:  dias Bisiento(Year(Now)) - Day(Nacio) + Day(Now)
        
End Select
        Meses 
Meses 1
        
If Meses = -1 Then
            Meses 
11
            Anios 
Anios 1
        End 
If
    
End If
    If 
Anios 1 Then
        CalculaEdad 
Anios " año "
    
Else
        
CalculaEdad Anios " años "
    
End If
 
    If 
Meses 1 Then
        CalculaEdad 
CalculaEdad Meses " mes y "
    
Else
       
CalculaEdad CalculaEdad Meses " meses y "
    
End If
 
    If 
dias 1 Then
        CalculaEdad 
CalculaEdad dias " dia"
    
Else
        
CalculaEdad CalculaEdad dias " dias"
    
End If
 
End Function
 
Private Function 
Bisiento(Anio As Integer) As Integer
    
If (Anio Mod 4) = 0 Then
        Bisiento 
29
    
Else
        
Bisiento 28
    End 
If
End Function 
Hola
En tú función Bisiento, te falta algo como (OJO, no se PHP)
Código PHP:
Private Function Bisiento(Anio As Integer) As Integer
    
If (Anio Mod 4) = 0 Then
        
If ((Anio Mod 100) = 0Then
            
if ((Anio Mod 400) = 0)Then
                Bisiento 
29
            
Else
                
Bisiento 28
        
Else
            
Bisiento 29
    
Else
        
Bisiento 28
    End 
If
End Function 
Lo que trato que hacer es que un año NO es bisiesto si es divisible entre 4 y al mismo tiempo entre 100 a menos que sea divisible entre 400.

Por ejemplo, el año 2100 no es bisiesto; pero el 2000 si lo es
esmitt está desconectado  
Antiguo 14-ago-2007, 22:25   #9
Snoopy
Miembro SUSPENDIDO
 
Registrado: noviembre-2006
Ubicación: Lima
Edad: 28
Mensajes: 1.500
Tienes Razón, lo acabo de leer en Wikipedia

Pero para ese tiempo ya estaré muerto y poco me importará mi edad.

Saludos

PD: ahorita ando con sueño, mañana sin falta te hago la rectificación... buenas noches

Última edición por Snoopy; 14-ago-2007 a las 22:29 . Razón: Sueño
Snoopy está desconectado  
Antiguo 16-oct-2007, 14:56   #10
Hadess_inf
Miembro Nuevo
 
Registrado: octubre-2007
Mensajes: 11
Cita:
la matematicas entra pero en muy poco
Las matematicas representan el99% a la hora de programar

Última edición por Hadess_inf; 16-oct-2007 a las 15:44 .
Hadess_inf está desconectado  
Antiguo 16-oct-2007, 16:50   #11
Snoopy
Miembro SUSPENDIDO
 
Registrado: noviembre-2006
Ubicación: Lima
Edad: 28
Mensajes: 1.500
Cita:
Iniciado por Hadess_inf Ver Mensaje
Las matematicas representan el99% a la hora de programar
Si lo dices, asi debe ser.............. pero recuerda que en cualquier LP haces codigo con una secuencia Lógica, no una Hoja de Calculo, para eso esta el EXCEL

Saludos
Snoopy está desconectado  
Antiguo 16-oct-2007, 17:53   #12
Hadess_inf
Miembro Nuevo
 
Registrado: octubre-2007
Mensajes: 11
Cita:
Iniciado por Snoopy Ver Mensaje
Si lo dices, asi debe ser.............. pero recuerda que en cualquier LP haces codigo con una secuencia Lógica, no una Hoja de Calculo, para eso esta el EXCEL

Saludos

La logica esta muy ligada a las matematicas, mientras mas conocimientos y practica tengas en lo que es matematica podras dar solucion de una forma mas facil y eficiente a la hora de programar o desarrollar un algoritmo, puesto que la matematica ayuda a desarrollar la lagica, veamos un ejemplo:

Ordenar un vector: M(8)

M(0)=15
M(1)=93
M(2)=10
M(3)=35
M(4)=5
M(5)=10
M(6)=25
M(7)=30

Solucion:

int a, b, aux
For(a=0;a<8;a++)
{
For(b=a+1;b<8;b+)
{
If m(a) > m(b) Then
aux = m(a)
m(a) = m(b)
m(b) = aux
End If
}
}
Hadess_inf está desconectado  
Antiguo 16-oct-2007, 17:57   #13
Snoopy
Miembro SUSPENDIDO
 
Registrado: noviembre-2006
Ubicación: Lima
Edad: 28
Mensajes: 1.500
Esperemos que los sistemas sean basados en un 99% en vectores entonces

Y eso yo lo conozco como un Arreglo (ARRAY) y lo que estas haciendo es un simple Ordenamiento (comparando el valor actual con el siguiente y cambiandolos de ser necesario), te aseguro que no use ningun solo calculo matemático ni mucho menos un lapiz y papel para poder ver claramente tu codigo

Saludos
PD: Saque 0 en matematicas discreta
Snoopy está desconectado  
Antiguo 16-oct-2007, 18:03   #14
Hadess_inf
Miembro Nuevo
 
Registrado: octubre-2007
Mensajes: 11
Cita:
Iniciado por Snoopy Ver Mensaje
lo que estas haciendo es un simple Ordenamiento (comparando el valor actual con el siguiente y cambiandolos de ser necesario).
Exacto, pero eso es matematica basica, y es solo un simple ejemplo con un Array. Y si usaste un calculo matematico, porque sino lo ubieses hecho no sabrias enterner ni la solucion ni el problema. Claro que no usaste una calculadora( si una maquina te refieres ), tu cerebro trabajo, seria un poco absurdo decir que el cerebro lo hizo sin saber que 1 + 1 es 2.
Hadess_inf está desconectado  
Antiguo 16-oct-2007, 18:04   #15
Snoopy
Miembro SUSPENDIDO
 
Registrado: noviembre-2006
Ubicación: Lima
Edad: 28
Mensajes: 1.500
Ok.....................
Snoopy está desconectado  
Respuesta

Herramientas

Ir al subforo

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Que edad debemos tener para el amor MiGueLAnGelO Amores y Sexualidad 29 07-ago-2008 21:26
¿Mínima edad para ver Anime? cariñosito Manga y Anime 20 07-ago-2008 16:25
Aprende a Calcular tu consumo de Electricidad Snoopy Foro Libre 15 19-oct-2007 11:06
Busco una función para Excel carlos blanxart Programación de Aplicaciones 2 24-ago-2007 20:53


Certifica IAB Perú