si echo no tengo nada esk lo intento hace a papel para haber si me acuerdo como se hacia pero nada
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: L-EYER en 5 Noviembre 2009, 17:32 PMlo k pasa es que no me salen los dias, con algunos valores me da bien pero no con todo por los años que tienen 366 dias. por cierto a mi no me da errores, y a que te refieres con matrices????, cuenta que nos dejan usar pocas cosas.
naaa esto muy facil ademas me da errores deberias mejorar tu code añadiendo matrizes por lo demas no veo que te detiene.
Saludos.
Citarimport cs1.Keyboard;
import java.lang.String;
import java.text.*;
import java.util.*;
public class EX1 {
public static void main(String args[]) {
String nom1,nom2,nom3,sec1,sec2,sec3,data1,data2,data3;
int num1,num2,num3,num4;
int dia1,dia2,dia3,mes1,mes2,mes3,any1, any2,any3;
String data,sistem, comprobar = "n" ;
int dia,mes,anno,anyfin1=0,anyfin2=0,anyfin3=0,mesfin1,mesfin2,mesfin3;
int diafinal1=0, diafinal2=0,diafinal3=0;
System.out.print("Entra el nom de la primera persona: ");
nom1 = Keyboard.readString();
System.out.print("Entra la seccio de la primera persona: ");
sec1 = Keyboard.readString();
System.out.print("Entra la data d'alta de la primera persona:(dd/mm/aaaa) ");
data1 = Keyboard.readString();
System.out.print("Entra el nom de la segona persona: ");
nom2 = Keyboard.readString();
System.out.print("Entra la seccio de la segona persona: ");
sec2 = Keyboard.readString();
System.out.print("Entra la data d'alta de la segona persona: (dd/mm/aaaa) ");
data2 = Keyboard.readString();
System.out.print("Entra el nom de la tercera persona: ");
nom3 = Keyboard.readString();
System.out.print("Entra la seccio de la tercera persona: ");
sec3 = Keyboard.readString();
System.out.print("Entra la data d'alta de la tercera persona: (dd/mm/aaaa) ");
data3 = Keyboard.readString();
//separacion fechas
//primera persona
num1 = data1.length();
dia1=Integer.valueOf(data1.substring(0,2)).intValue() ;
mes1=Integer.valueOf(data1.substring(3,5)).intValue() ;
any1=Integer.valueOf(data1.substring(6 ,10)).intValue() ;
//segunda persona
num2 = data2.length();
dia2=Integer.valueOf(data2.substring(0,2)).intValue() ;
mes2=Integer.valueOf(data2.substring(3,5)).intValue() ;
any2=Integer.valueOf(data2.substring(6 ,10)).intValue() ;
//tercera persona
num3 = data3.length();
dia3=Integer.valueOf(data3.substring(0,2)).intValue() ;
mes3=Integer.valueOf(data3.substring(3,5)).intValue() ;
any3=Integer.valueOf(data3.substring(6 ,10)).intValue() ;
System.out.print("Vol utilitzar la data del sistema? s/n ");
sistem = Keyboard.readString();
if (sistem.equals(comprobar)){
//si quiere poner la fecha a mano
System.out.print("Entri la data de amb la que vol fer el calcul: (dd/mm/aaaa) ");
data = Keyboard.readString();
num4=data.length();
dia = Integer.valueOf(data.substring(0,2)).intValue() ;
mes = Integer.valueOf(data.substring(3,5)).intValue() ;
anno = Integer.valueOf(data.substring(6,10)).intValue() ;
}
else{
//fecha actual
Date date = new Date();
String formato4 = new String("dd/MM/yyyy");
SimpleDateFormat formatoSimple = new SimpleDateFormat(formato4);
data = formatoSimple.format(date);
num4=data.length();
dia = Integer.valueOf(data.substring(0,2)).intValue() ;
mes = Integer.valueOf(data.substring(3,5)).intValue() ;
anno = Integer.valueOf(data.substring(6,10)).intValue() ;}
//calcular años
if (any1 >anno)
System.out.print("L'any actual ha de ser mes gran que el d'alta");
else
anyfin1= anno - any1;
if (any2 >anno)
System.out.print("L'any actual ha de ser mes gran que el d'alta");
else
anyfin2= anno - any2;
if (any3 >anno)
System.out.print("L'any actual ha de ser mes gran que el d'alta");
else
anyfin3= anno - any3;
//calcular mes
if (mes1>mes){
mesfin1=0;}
else{
mesfin1= mes - mes1 -1;}
if (mes2>mes){
mesfin2 =0;}
else{
mesfin2= mes - mes2-1;}
if(mes3>mes){
mesfin3 =0;}
else{
mesfin3= mes - mes3-1;}
// dia_total1 = (29 - dia_alta11) + (int)Math.floor((any_actual0 - any_alta11)/4) ;
//calcular dia primero
double val1 = any1 %100;
double val11 = any1 %400;
if ((val1 ==0)&&(val11==0)&&(mes1==02)) {
diafinal1= (29- dia1)+(int)Math.floor(anyfin1/4);
}
else{
if ((mes1==01)||(mes1==03)||(mes1==05)||(mes1==07)||(mes1==8)||(mes1==10)||(mes1==12))
{
diafinal1 = 31- dia1+(int)Math.floor(anyfin1/4);}
else{
if ((mes1==04)||(mes1==06)||(mes1==9)||(mes1==11)) {
diafinal1 = 30 - dia1+(int)Math.floor(anyfin1/4); }
else{
double valor1 = any1%4;
if (valor1 == 0){
diafinal1 = 29 - dia1+(int)Math.floor(anyfin1/4);}
else
diafinal1=28-dia1+(int)Math.floor(anyfin1/4);}
}}
// calcular dia segundo
double val2 = any2 %100;
double val21 = any2%400;
if ((val2 ==0)&&(val21==0)&&(mes2==02)) {
diafinal2= 29- dia2;
}
else{
if ((mes2==01)||(mes2==03)||(mes2==05)||(mes2==07)||(mes2==8)||(mes2==10)||(mes2==12))
{
diafinal2 = 31- dia2+(int)Math.floor(anyfin2/4);}
else{
if ((mes2==04)||(mes2==06)||(mes2==9)||(mes2==11)) {
diafinal2 = 30 - dia2+(int)Math.floor(anyfin2/4); }
else{
double valor23 = any2%4;
if (valor23 == 0){
diafinal2 = 29 - dia2+(int)Math.floor(anyfin2/4);}
else
diafinal2=28-dia2+(int)Math.floor(anyfin2/4);}
}}
// calcular dia tercero
double val3 = any3 %100;
double val31 = any3%400;
if ((val3 ==0)&&(val31==0)&&(mes3==02)) {
diafinal3= 29- dia3+(int)Math.floor(anyfin3/4);
}
else{
if ((mes3==01)||(mes3==03)||(mes3==05)||(mes3==07)||(mes3==8)||(mes3==10)||(mes3==12))
{
diafinal3 = 31- dia3+(int)Math.floor(anyfin3/4);}
else{
if ((mes3==04)||(mes3==06)||(mes3==9)||(mes3==11)) {
diafinal3 = 30 - dia3+(int)Math.floor(anyfin3/4); }
else{
double valor32 = any2%4;
if (valor32 == 0){
diafinal3 = 29 - dia3+(int)Math.floor(anyfin3/4);}
else
diafinal3= 28-dia3+(int)Math.floor(anyfin3/4);}
}}
//salida por pantalla
System.out.println("nom"+" " + "seccio"+" " + "Data sd'alta"+" "+"vida laboral");
System.out.println(nom1+" "+sec1+" "+data1+" "+diafinal1+" dies "+mesfin1+" mesos "+anyfin1+" anys ");
System.out.println(nom2+" "+sec2+" "+data2+" "+diafinal2+" dies "+mesfin2+" mesos "+anyfin2+" anys ");
System.out.println(nom3+" "+sec3+" "+data3+" "+diafinal3+" dies "+mesfin3+" mesos "+anyfin3+" anys ");
}
}
Citarimport cs1.Keyboard;
import java.lang.String;
import java.text.*;
import java.util.*;
public class EX1 {
public static void main(String args[]) {
String nom1,nom2,nom3,sec1,sec2,sec3,data1,data2,data3;
int num1,num2,num3,num4;
int dia1,dia2,dia3,mes1,mes2,mes3,any1, any2,any3;
String data,sistem, comprobar = "n" ;
int dia,mes,anno,anyfin1=0,anyfin2=0,anyfin3=0,mesfin1,mesfin2,mesfin3;
int diafinal1=0, diafinal2=0,diafinal3=0;
System.out.print("Entra el nom de la primera persona: ");
nom1 = Keyboard.readString();
System.out.print("Entra la seccio de la primera persona: ");
sec1 = Keyboard.readString();
System.out.print("Entra la data d'alta de la primera persona:(dd/mm/aaaa) ");
data1 = Keyboard.readString();
System.out.print("Entra el nom de la segona persona: ");
nom2 = Keyboard.readString();
System.out.print("Entra la seccio de la segona persona: ");
sec2 = Keyboard.readString();
System.out.print("Entra la data d'alta de la segona persona: (dd/mm/aaaa) ");
data2 = Keyboard.readString();
System.out.print("Entra el nom de la tercera persona: ");
nom3 = Keyboard.readString();
System.out.print("Entra la seccio de la tercera persona: ");
sec3 = Keyboard.readString();
System.out.print("Entra la data d'alta de la tercera persona: (dd/mm/aaaa) ");
data3 = Keyboard.readString();
//separacion fechas
//primera persona
num1 = data1.length();
dia1=Integer.valueOf(data1.substring(0,2)).intValue() ;
mes1=Integer.valueOf(data1.substring(3,5)).intValue() ;
any1=Integer.valueOf(data1.substring(6 ,10)).intValue() ;
//segunda persona
num2 = data2.length();
dia2=Integer.valueOf(data2.substring(0,2)).intValue() ;
mes2=Integer.valueOf(data2.substring(3,5)).intValue() ;
any2=Integer.valueOf(data2.substring(6 ,10)).intValue() ;
//tercera persona
num3 = data3.length();
dia3=Integer.valueOf(data3.substring(0,2)).intValue() ;
mes3=Integer.valueOf(data3.substring(3,5)).intValue() ;
any3=Integer.valueOf(data3.substring(6 ,10)).intValue() ;
System.out.print("Vol utilitzar la data del sistema? s/n ");
sistem = Keyboard.readString();
if (sistem.equals(comprobar)){
//si quiere poner la fecha a mano
System.out.print("Entri la data de amb la que vol fer el calcul: (dd/mm/aaaa) ");
data = Keyboard.readString();
num4=data.length();
dia = Integer.valueOf(data.substring(0,2)).intValue() ;
mes = Integer.valueOf(data.substring(3,5)).intValue() ;
anno = Integer.valueOf(data.substring(6,10)).intValue() ;
}
else{
//fecha actual
Date date = new Date();
String formato4 = new String("dd/MM/yyyy");
SimpleDateFormat formatoSimple = new SimpleDateFormat(formato4);
data = formatoSimple.format(date);
num4=data.length();
dia = Integer.valueOf(data.substring(0,2)).intValue() ;
mes = Integer.valueOf(data.substring(3,5)).intValue() ;
anno = Integer.valueOf(data.substring(6,10)).intValue() ;}
//calcular años
if (any1 >anno)
System.out.print("L'any actual ha de ser mes gran que el d'alta");
else
anyfin1= anno - any1;
if (any2 >anno)
System.out.print("L'any actual ha de ser mes gran que el d'alta");
else
anyfin2= anno - any2;
if (any3 >anno)
System.out.print("L'any actual ha de ser mes gran que el d'alta");
else
anyfin3= anno - any3;
//calcular mes
if (mes1>mes){
mesfin1=0;}
else{
mesfin1= mes - mes1 -1;}
if (mes2>mes){
mesfin2 =0;}
else{
mesfin2= mes - mes2-1;}
if(mes3>mes){
mesfin3 =0;}
else{
mesfin3= mes - mes3-1;}
//calcular dia primero
double val1 = any1 %100;
double val11 = any1 %400;
if ((val1 ==0)&&(val11==0)&&(mes1==02)) {
diafinal1= 29- dia1;
}
else{
if ((mes1==01)||(mes1==03)||(mes1==05)||(mes1==07)||(mes1==8)||(mes1==10)||(mes1==12))
{
diafinal1 = 31- dia1+4;}
else{
if ((mes1==04)||(mes1==06)||(mes1==9)||(mes1==11)) {
diafinal1 = 30 - dia1+4; }
else{
double valor1 = any1%4;
if (valor1 == 0){
diafinal1 = 29 - dia1;}
else
diafinal1=28-dia1;}
}}
// calcular dia segundo
double val2 = any2 %100;
double val21 = any2%400;
if ((val2 ==0)&&(val21==0)&&(mes2==02)) {
diafinal2= 29- dia2;
}
else{
if ((mes2==01)||(mes2==03)||(mes2==05)||(mes2==07)||(mes2==8)||(mes2==10)||(mes2==12))
{
diafinal2 = 31- dia2+3;}
else{
if ((mes2==04)||(mes2==06)||(mes2==9)||(mes2==11)) {
diafinal2 = 30 - dia2+4; }
else{
double valor23 = any2%4;
if (valor23 == 0){
diafinal2 = 29 - dia2;}
else
diafinal2=28-dia2;}
}}
// calcular dia tercero
double val3 = any3 %100;
double val31 = any3%400;
if ((val3 ==0)&&(val31==0)&&(mes3==02)) {
diafinal3= 29- dia3;
}
else{
if ((mes3==01)||(mes3==03)||(mes3==05)||(mes3==07)||(mes3==8)||(mes3==10)||(mes3==12))
{
diafinal3 = 31- dia3+3;}
else{
if ((mes3==04)||(mes3==06)||(mes3==9)||(mes3==11)) {
diafinal3 = 30 - dia3+4; }
else{
double valor32 = any2%4;
if (valor32 == 0){
diafinal3 = 29 - dia3;}
else
diafinal3= 28-dia3;}
}}
//salida por pantalla
System.out.println("nom"+" " + "seccio"+" " + "Data sd'alta"+" "+"vida laboral");
System.out.println(nom1+" "+sec1+" "+data1+" "+diafinal1+" dies "+mesfin1+" mesos "+anyfin1+" anys ");
System.out.println(nom2+" "+sec2+" "+data2+" "+diafinal2+" dies "+mesfin2+" mesos "+anyfin2+" anys ");
System.out.println(nom3+" "+sec3+" "+data3+" "+diafinal3+" dies "+mesfin3+" mesos "+anyfin3+" anys ");
}
}