Utur el extraterrestre

Utur vino de muy lejos, con una nave espacial decidió aventurarse por el espacio remoto desde su planeta lejano Ut. Un planeta dónde todos tienen cómo prefijo el nombre del planeta, para que nadie olvide sus orígenes. Y su sufijo es el nombre que usan. Llegó a la Tierra un día lluvioso y no llevaba paraguas. En busca de refugio se acercó a una casa, a las afueras de un pueblo. Los lugareños asustados no le dejaron entrar, hasta algún niño animado por sus padres insensibles le tiraron piedras. Utur, asustado de tanta violencia, decidió correr bajo la lluvia hacía su astronave. Hasta que en medio de la carretera se encontró un grupo de personas, que le dieron una toalla para secarse, ropa limpia y su amistad.

Utur descubrió que hay violencia y amor en este planeta, que ambas cosas son posibles y que puede ser que te topes con una o con otra, lo cuál no está acostumbrado a tal dualidad, allí en su planeta todo es amor y empatía, ya que el afecto es el eje de sus vidas.

Programa contar días JAVA

Comentario y presentación:

Este programa que he diseñado cómo práctica para aplicar los conocimientos básicos de java que he adquirido este primer semestre se compone de varios elementos: Entrada de datos por teclado y salida por pantalla. Bucle for para ir pasando por los diversos meses y años de distancia, además de incluir el condicional if, además de usar el switch case para definir que días se han de añadir o contar por cada mes. Es decir muchos elementos de base de programación están ahí. Faltarían cosas que he visto de forma autodidacta cómo funciones y otras cosas.

Este programa lo que hace es primero pedir una fecha y luego otra por día, mes y año. Y va analizando primero si es mismo año o no y la distancia entre dichos elementos. Además de analizar si el año es bisiesto o no cuando ha de calcular año tras año e ir sumando días de la totalidad de un año. Para este calculo se usa el modulo 4, año % 4, para así obtener el resultado de sí es o no. Si es multiple de 4 el programa determinará que es bisiesto y sumará 366 días en el contador, si no lo es, calculará 365 y los sumará.

Cosas a mejorar y aplicables en este caso:

Cuando aprenda y domine el tema de las funciones, simplificar el código mediante la función de los meses y días. El nombre de la función sería tipo diasmes o similar. Por otra parte sería oportuno pedir la fecha inicial y final en solamente 2 conceptos en lugar de ahora en 6.
Día 1
Mes 1
Año 1
Día 2
Mes 2
Año 2

Lo ideal sería simplificarlo en fecha inicial y fecha final. A partir de ello extraer la información del día, mes y año, pero simplificar la entrada para el usuario y hacerlo más accesible.

Código:
Contardias.java

 

package contardias;
import java.util.Scanner;
public class Contardias {
    
    public static void main(String[] args) {
    Scanner lector = new Scanner(System.in);
    int count=0, dmax1=0; 
    int anys=0;
    System.out.println("Si ha introduit dades incorrectes es posarà un valor correcte per defecte");
    System.out.println("Dies per defecte serà 15, mes serà 6(juny) i el primer any serà 5 anys inferior al indicat");
    System.out.println("Indiqui el día del any inicial a comptar \n");
    int dia1 = lector.nextInt();
    if((dia1>31)||(dia1<1)){
        dia1=15;
    }
    System.out.println("Indiqui el mes del any inicial a comptar \n");
    int mes1 = lector.nextInt();
    if((mes1<1)||(mes1>12)){
        mes1=1;        
    }
    System.out.println("Indiqui el any inicial a comptar \n");
    int any1 = lector.nextInt();
    System.out.println("Indiqui el día del any final a comptar \n");
    int dia2 = lector.nextInt();
    if((dia2>31)||(dia2<1)){
        dia2=15;
    }
    System.out.println("Indiqui el mes del any final a comptar \n");
    int mes2 = lector.nextInt();
    if((mes2<1)||(mes2>12)){
        mes2=1;        
    }
    System.out.println("Indiqui el any final a comptar \n");
    int any2 = lector.nextInt();
       if(any2<any1){
           any1=any2-5;
       }
    // dïas transcurridos
    switch(mes1){
        case 1:
        case 3: 
        case 5:
        case 7:
        case 8:
        case 10:            
        case 12:    
            dmax1=31;
        break;
        case 4:
        case 6:
        case 9:
        case 11:
           dmax1=30;
           break;
        case 2:
            if(any1%4==0){
                dmax1=29;
            }else{
                dmax1=28;
            }
    }
    if (any1==any2){
        if(mes1==mes2){
            count=dia2-dia1;
            //System.out.println("días transcurridos: "+count);
        }else{      
            count=count+dmax1-dia1;
            //System.out.println("días transcurridos del mes inicial "+count);
            for (int i=mes1+1;i<mes2;i++){
              switch(i){
            case 1:
            case 3: 
            case 5:
            case 7:
            case 8:
            case 10:            
            case 12:    
                count=count+31;
            break;
            case 4:
            case 6:
            case 9:
            case 11:
                count=count+30;
                break;
            case 2:
                if(any1%4==0){
                    count=count+29;
                }else{
                    count=count+28;
                }
        }          
            }
        if(mes2==mes1+1){
            count=count+dia2;
        }
        //System.out.println("Días transcurricdos entre los meses: "+count);
        }
            }else{
                count=count+dmax1-dia1;
                for (int j=mes1+1;j<13;j++){
                    switch(j){
                        case 1:
                        case 3: 
                        case 5:
                        case 7:
                        case 8:
                        case 10:            
                        case 12:    
                            count=count+31;
                            break;
                        case 4:
                        case 6:
                        case 9:
                        case 11:
                            count=count+30;
                            break;
                        case 2:
                             if(any1%4==0){
                                count=count+29;
                            }else{
                                count=count+28;
                            }
                    }          
                }
                //System.out.println("Días transcurridos en el año 1: "+count);
                if(any2-any1>1){
                    for(int k=any1+1; k<any2;k++){
                        if(k%4==0){
                            count=count+366;
                        }else{
                            count=count+365;
                        }
                    }
                }
            //System.out.println("Días transcurridos entre el año 1 y año2 "+count);
            for(int l=1;l<mes2;l++){
                switch(l){
                        case 1:
                        case 3: 
                        case 5:
                        case 7:
                        case 8:
                        case 10:            
                        case 12:    
                            count=count+31;
                            break;
                        case 4:
                        case 6:
                        case 9:
                        case 11:
                            count=count+30;
                            break;
                        case 2:
                             if(any2%4==0){
                                count=count+29;
                            }else{
                                count=count+28;
                            }
                    } 
            }    
            count=count+dia2;
            //System.out.println("Días transcurridos totales: "+count);            
        }
        System.out.println("Días transcurridos totales entre la fecha inciial y la fecha final: "+count);
    }
}

 

Planos urbanos de la zona 1 tarifaria de Barcelona

CALLEJEROS ONLINE DE LA ZONA 1

Badalona: http://badalona.cat/portalWeb/badalona.portal?_nfpb=true&_pageLabel=guia_ciutat_home#wlp_guia_ciutat_home

Permite seleccionar una dirección, además de varias opciones de cosas en el plano (transporte…) y al indicar un nombre de calle sale una lista en la que se puede escoger. Aunque no permite como en la web del ayuntamiento de Barcelona clicar sobre algo y saber más detalles (como paradas de bus y tal), si que te dice que parada de metro, tranvia o tren hay pero no los autobuses ni que salidas hay. Aunque indica más precisamente donde están los números, cosa que ya hace la web de Barcelona, pero el servicio de busqueda al menos parece interesante.

Barcelona Versión Nueva: http://w20.bcn.cat/Guiamap/Default.aspx (El único problema de la versión nueva es que muchas veces se cuelga, pero se pueden seleccionar muchas opciones de información como metro, bus, tranvia, paradas de bicing… cosa que está muy bien y mediante estos planos es relativamente facil ubicarse) aunque es mejor usar la versión antigua ya que se cuelga menos y más facil imprimirse un plano y así poderse mover. http://www.bcn.cat/guia/welcome_antiga.htm

Castelldefels: http://www.castelldefels.org/ca/guiaciutat.asp : Te permite buscar equipamientos bastante directamente poniendo el nombre del equipamiento o una dirección concreta. Te permite medir distancias. Al clicar sobre el mapa del resultado, te permite abrir un mapa más interactivo. Tiene un apartado propio para las paradas de bus y localizarlas en un mapa. Aunque salen dibujadas las vias de tren y sale la plaza de la estación, no queda muy especificado el resto de transportes ni en el plano directamente el tema transportil si no que hay que ir a una sección concreta para saber dónde está una parada. Está bien para quien vive por ahí, pero es muy dificil para quienes no son de Castelldefels y tienen que ir ahí. Aunque si que el plano en sí está bastante bien.

El Prat de Llobregat: http://planol.elprat.cat/ En este plano se puede buscar una dirección, sale dibujada la parada de autobus y aparentemente se puede clicar y hacer que salga también el recorrido de las líneas al menos dentro del núcleo urbano y pasando por encima de las opciones elegidas para que aparezcan en el mapa, sale algo de información. Y con la opción información sale algo más de información. Aunque en algunos aspectos cuesta manejarla.

Esplugues de Llobregat: http://mun.nexusgeografics.com/espluguesgu/index.jsp Permite ubicar paradas de autobus, metro y tranvia, además de buscar una dirección aunque no acaba de especificar que buses paran en la parada, aunque si más no especifica los nombres.

Gavá: http://www.gavaciutat.net/cat/asp/PUplanol.asp?0 La web indica las paradas de bus, renfe e incluso metro y fgc (aunque no hay paradas de FGC ni de metro en dicha población, curioso). Aunque la web no parece querer buscar direcciones ni indicar las paradas de bus por mucho que se indica la opción. Pero esperemos que con el tiempo la web mejore. Por ahora parece que si más no se puede navegar por el plano de la ciudad, aunque hay que saber más o menos la ubicación mediante otros medios.

L’Hospitalet de Llobregat: http://www.l-h.cat/utils/guiaUrbana/planol.aspx La web parece indicar las paradas de metro, autobus, FGC, Renfe. Además de buscar la ubicación de la dirección que buscamos y uno puede moverse, ampliar, reducir. Clicar en lo seleccionado que aparezca en mapa (transportes, servicios…) y saber algo más. Clicando sobre las paradas se ve que líneas de autobus paran. Aparentemente es una web bastante útil.

Molins de Rei: http://www.molinsderei.cat/ca/viure_molins_de_rei/planol Hay que clicar en planol de la vila para acceder al servicio de callejero de la web del ayuntamiento de Molins de Rei. Allí se puede buscar una dirección y poner servicios por el mapa. Es bastante manejable, aunque hay quizás exceso de información pero eso no es criticable en ningún modo. Al pasar por encima de los servicios elegidos (que por definición suelen estar todos, así que hay que eliminar para tener un mapa más o menos limpio y encontrar lo necesario), pero aparecen las paradas de bus con las líneas que paran y el nombre de la parada que normalmente como ya se sabe es la confluencia de dos calles o algo así como sucede en todos los municipios. Parada Barcelona – Lleida porque confluyen dichas calles (por decir un ejemplo irreal). Pero sobre todo el número de las líneas. Incluso en la parada de Renfe al pasar por encima aparece R1 y R4.

Montcada i Reixach: http://planol.montcada.cat/emap400_10/emapsearch.aspx?prjid=gf_08155&Scope=SWF&ortho=true&lang=2

La web de momento no parece funcionar adecuadamente. Pero es de suponer que en su momento será una herramienta potente para aquellos que tengan que ubicarse por dicha ciudad para hacer gestiones, encontrarse con alguién o cualquier otro motivo.

Montgat: http://delta.icc.es/ideLocal/IdecServ?codi=081265&tipus=c Parece una aplicación que utiliza google maps, que como ya es sabido la información no siempre es suficiente, aunque se pueden añadir servicios municipales, no muestra para nada el tema de transportes (autobuses, paradas de tren). Web ayuntamiento: http://www.montgat.cat/

Sant Adrià del Besos: http://santadria.planol.info/ En el plano se puede buscar negocios, tipo panaderia, …, salen las paradas de bus, metro, tranvia, renfe con información de las lineas que paran donde aparece una parada. Como curiosidad sale también las calles que están cortadas. Sale bastante información. Parece una web de consulta para ubicarse bastante completa.

Santa Coloma de Gramanet: Es complicado de encontrar y usa el mismo sistema que el del ayuntamiento de Montgat. http://delta.icc.es/ideLocal/IdecServ?codi=082457&tipus=u&capes=Terme%20municipal

Sant Boi de Llobregat: http://www.santboidellobregat.es/website/planolciutat/viewer.htm

Se pueden seleccionar servicios, buscar una calle y al clicar sobre algo si se ha seleccionado transporte por ejemplo, salen las líneas que paran en dicha parada de bus. Aunque en mi primer intento se me ha colapsado la página y he tenido que hacer un F5 pero a la segunda suele funcionar o eso parece. Además de salir otros elementos por defecto, como servicios administrativos diversos. Si más no sale encima de las paradas de bus la información de las líneas que paran en dicha parada.

Sant Feliu de Llobregat: http://www.santfeliu.cat/go.faces?xmid=15779 Permite encontrar una dirección y ver donde hay parada de bus urbano e interurbano pero no indica ni paradas de tranvia ni de tren pero no acaba de dar demasiada información, solamente te ubica en la ciudad y poco más. Además de indicarte dónde paran los buses.

Sant Joan Despi: http://mun.nexusgeografics.com/sjdespi/index.jsp Sale la estación de tren, los servicios del ayuntamiento. Se permite navegar por la ciudad por así decirlo como quien mira un plano pero no sale información de transportes (bus-tranvia) pero permite ubicarse en la ciudad.

Sant Just Desvern: http://mercuri.icc.cat/website/guia/carrerer.html? Utiliza el servicio de callejero web de la generalitat. Aunque permite bajarse un plano de la ciudad en PDF: http://www.santjust.cat/planol/planol_sjd_09.pdf en el que se indican puntos de interés y algunas paradas de tram sin demasiado detalle (Ni tan siquiera el nombre de la parada que es a deducir según donde está).

Viladecans: http://www.aj-viladecans.es Hay que clicar en la sección planol para acceder al callejero. Aunque para ubicarse está bien, no da demasiados detalles ni información de servicios como podrían ser las líneas de autobus, sus paradas o incluso tren, y sobre todo información sobre temas del ayuntamiento y demás, aunque si que indica algunos espacios cuando se para por ahí pero como parte del propio plano.