Práctica rarísima de Java

  1. #1
    Avatar de Andrógina Muy Entendid@
    Registrad@ el
    26/08/2009
    Sexo
    Chica
    Edad
    25
    Mensajes
    2.401
    Agradecido
    7 veces
    Temas
    71

    Práctica rarísima de Java

    Hola.

    Tengo una práctica de programación un tanto rara :S
    Me piden que haga una función en la que se "calcule" la fecha anterior a la propuesta, es decir, si proponemos: 12/04/2009, calculamos 11/04/2009= 11+4+2009.

    Sé que hay que poner miles de condicionales, pero no sé muy bien por dónde cogerlo >_< si alguien me pudiese ayudar en poco y menos, le estaría muy agradecida.

  2. #2
    Avatar de Orion Muy Entendid@
    Registrad@ el
    22/05/2010
    Localidad
    De todo el mundo
    Sexo
    Chico
    Edad
    30
    Mensajes
    2.753
    Agradecido
    195 veces
    Temas
    44
    Apenas tengo idea pero por ejemplo, haces un array de numeros con ellos. Luego de ese array tomas el elemento dos y restas uno. Finalmente en un for sumas los elementos del array et voilá.


  3. #3
    Avatar de Cooper Bang!
    Registrad@ el
    19/06/2009
    Sexo
    Chico
    Mensajes
    20.091
    Agradecido
    9901 veces
    Temas
    169
    Lo puedes hacer incluso con un main del tirón. Pides los 3 enteros por teclado (día, mes, año). Ahora sumas día -1 + mes + año (según lo que has puesto ahí, te piden la suma de los dígitos de la fecha, no?). Print suma y a correr.

    No veo donde quieres poner los condicionales, o no te has explicado muy bien. xD
    “The amazing thing is that every atom in your body came from a star that exploded. And, the atoms in your left hand probably came from a different star than your right hand. It really is the most poetic thing I know about physics: You are all stardust. You couldn’t be here if stars hadn’t exploded, because the elements - the carbon, nitrogen, oxygen, iron, all the things that matter for evolution - weren’t created at the beginning of time. They were created in the nuclear furnaces of stars, and the only way they could get into your body is if those stars were kind enough to explode. So, forget Jesus. The stars died so that you could be here today.”

    Lawrence Krauss, "A Universe from Nothing: Why There Is Something Rather Than Nothing".

  4. #4
    Moderador/a
    Registrad@ el
    15/04/2007
    Localidad
    Bcn
    Sexo
    Chica
    Mensajes
    13.631
    Agradecido
    1539 veces
    Temas
    548
    Creo que lo podría hacer con condicionales, pero sería muy largo.

  5. #5
    Avatar de Andrógina Muy Entendid@
    Registrad@ el
    26/08/2009
    Sexo
    Chica
    Edad
    25
    Mensajes
    2.401
    Agradecido
    7 veces
    Temas
    71
    Sí, me he explicado de culo xD
    Es que tengo que poner condicionales porque algunos meses tienen 30 días en vez de 31, o contar los años bisiestos.
    Gracias por vuestras respuestas

  6. #publi
    Publicidad

     

  7. #6
    Avatar de Orion Muy Entendid@
    Registrad@ el
    22/05/2010
    Localidad
    De todo el mundo
    Sexo
    Chico
    Edad
    30
    Mensajes
    2.753
    Agradecido
    195 veces
    Temas
    44
    Bueno es evidente que no sé leer, lo mio no sirve porque sumaria 2+0+0+9 por ejemplo. Te han dado la cabezera o es libre? Porque si es libre con lo de Faraday lo haces en un microsegundo y a otra cosa.


  8. #7
    Avatar de Andrógina Muy Entendid@
    Registrad@ el
    26/08/2009
    Sexo
    Chica
    Edad
    25
    Mensajes
    2.401
    Agradecido
    7 veces
    Temas
    71
    Qué va, es libre xD Lo haré así pues, a ver qué tal sale ^^

  9. #8
    Avatar de Cooper Bang!
    Registrad@ el
    19/06/2009
    Sexo
    Chico
    Mensajes
    20.091
    Agradecido
    9901 veces
    Temas
    169
    Cierto, se me pasó por alto lo de los finales e inicios de mes y año. Aún así es muy fácil, no tienes que aplicar tantas condiciones.

    Condición 1 (años bisiestos): el año es divisible por 4 o no. Anidada dentro de eso, si mes = 3 & día = 1, día -1 = 29, si no, 28. Al mes también has de quitarle 1.

    Condición 2 (finales de mes): Si día es igual a 1 & mes distinto de 2 => anidado si mes = 1, 3, 5 (los que vayan delante de uno de 30), día-1 = 30; si no día-1 = 31. Para el mes, lo mismo.

    Condición 3 (comienzo de año): Si mes = 1 y día = 1, año = año -1, dia lo pones a 31 y mes a 12.


    Yo creo que con eso basta. Es un cisco de variables y mi pseudocódigo lioso, pero con que pilles la idea de las condiciones y tal el resto es que te pongas a programar y te vaya saliendo :p
    “The amazing thing is that every atom in your body came from a star that exploded. And, the atoms in your left hand probably came from a different star than your right hand. It really is the most poetic thing I know about physics: You are all stardust. You couldn’t be here if stars hadn’t exploded, because the elements - the carbon, nitrogen, oxygen, iron, all the things that matter for evolution - weren’t created at the beginning of time. They were created in the nuclear furnaces of stars, and the only way they could get into your body is if those stars were kind enough to explode. So, forget Jesus. The stars died so that you could be here today.”

    Lawrence Krauss, "A Universe from Nothing: Why There Is Something Rather Than Nothing".

  10. #9
    Avatar de Raise Random Error Saysa de Vill
    Registrad@ el
    16/02/2004
    Localidad
    Madrid
    Sexo
    Chica
    Edad
    33
    Mensajes
    29.031
    Agradecido
    1495 veces
    Temas
    279
    La condición para los bisiestos era divisible entre 4, no entre 100 y sí entre 400. Algo como:
    (año mod 4==0) AND (año mod 100 !=0) OR (año mod 400 == 0)


    De todas formas, como es java yo me haría una clase fecha, con diferentes métodos:
    - RestarDia
    - RestarMes
    - RestarAño

  11. #10
    Avatar de Danica Nire mundua eraikitzen...
    Registrad@ el
    13/06/2007
    Localidad
    Republika independiente de mi casa...
    Sexo
    Chica
    Edad
    29
    Mensajes
    12.632
    Agradecido
    4563 veces
    Temas
    46
    Lo de los años bisiestos es como dice Random: ( (año mod 4 = 0) && !(año mod 100 = 0)) || (año mod 400 = 0) ), creo recordar que esa es la sintaxis de java pero siempre se me va la cabeza con eso, demasiados lenguajes ya.

    Yo también haría una clase, es mucho mas cómodo, pero depende del nivel en el que se supone que estes, si no a tirar de condicionales anidadas y listo.

    Zaindu maite duzun hori



Permisos de tu Usuario

  • No puedes crear nuevos temas
  • No puedes publicar respuestas
  • No puedes adjuntar archivos
  • No puedes editar tus mensajes
  •  
  • El código BB está activado
  • Los emoticonos están activados
  • La etiqueta [IMG] está activado
  • La etiqueta [VIDEO] está activado
  • El código HTML está desactivado
  • Los Trackbacks están desactivados
  • Los Pingbacks están desactivados
  • Los Refbacks están activados
  • Temas similares

    1. Respuestas: 0
      Último mensaje: 06/07/2010, 13:26
    2. Java 4 Ever
      Por opositivo en Cine
      Respuestas: 0
      Último mensaje: 30/06/2010, 15:00
    3. Práctica o teoría?
      Por Taty en Aula eK
      Respuestas: 36
      Último mensaje: 28/08/2006, 22:40
    4. Alguien practica el Snowboard?
      Por kkwsk en Deportes
      Respuestas: 19
      Último mensaje: 21/02/2005, 22:57
    5. Problema con el Java
      Por Ltn en elKonsultorio de Informática
      Respuestas: 10
      Último mensaje: 23/04/2004, 19:51