Pasar de binario a decimal

//Ejemplo de uso: binarioDecimal("101.00000000");

float ALU::binarioDecimal(string binario)
{
    int numeroDeDecimales = 8;
    //pasa un numero de binario a decimal
    string decimal = binario.substr((binario.length()-numeroDeDecimales),numeroDeDecimales);//coge la parte decimal del binario
    string entero = binario.substr(0,binario.length()-(numeroDeDecimales+1));//coge la parte entera del binario

    //longitud de la parte entera
    int enteroL = entero.length();
    float sol = 0.00;//valor del numero en decimal

    //recorre la parte entera de derrecha a izquierda y va haciendo esto
    /* 1     0     1
       2^2   2^1   2^0        suma los que tienen un 1
       4 +        + 1
        en decimal da 5
      */
    int contador=0;
    for (int var = enteroL-1; var >= 0 ; var--) {
        if(entero.substr(var,1)=="1"){
            sol+=pow(2,contador);

        }
        contador++;
    }

    //calcula en decimal la parte de despues de la coma en el binario
    /*
     0     .     1      0     1
                 1/2^1        1/2^3
                  los sumas
      */
    int decimalL = decimal.length();
    for (int var = 1; var <= decimalL ; var++) {
        if(decimal.substr(var-1,1)=="1"){
            float aux = pow(2,var);
            float auxi = 1/aux;
            sol+=auxi;
        }
    }

    return sol;

}

Pasar de binario a hexadecimal en C++

Solo para números enteros.
Ejemplo de uso: binarioHex("100100"); y te devuelve un string con el numero en hexadecimal



string ALU::hexadecimal(string num)
{
    //pasa cada 4 dígitos de binario a uno en hexadecimal
    if(num=="0000"){
        return "0";
    }else if(num=="0001"){
        return "1";
    }else if(num=="0010"){
        return "2";
    }else if(num=="0011"){
        return "3";
    }else if(num=="0100"){
        return "4";
    }else if(num=="0101"){
        return "5";
    }else if(num=="0110"){
        return "6";
    }else if(num=="0111"){
        return "7";
    }else if(num=="1000"){
        return "8";
    }else if(num=="1001"){
        return "9";
    }else if(num=="1010"){
        return "A";
    }else if(num=="1011"){
        return "B";
    }else if(num=="1100"){
        return "C";
    }else if(num=="1101"){
        return "D";
    }else if(num=="1110"){
        return "E";
    }else if(num=="1111"){
        return "F";
    }
       return 0;
}

//como a este metodo no se le pueden pasaar numeros decimales se separa la parte decimal de la entera y se las pasa al metodo por separado
string ALU::binarioHex(string binario)
{
    //coges el numero en binario
    string b = binario+"";

    string sol = "";//solucion

    //separa el numero de 4en4 dígitos
    int numeroSeparaciones = binario.length()/4;
    if(binario.length()%4>0){//si el numero no es exacto añade una separacion
        numeroSeparaciones++;

    }
    for (int var = binario.length(); var < numeroSeparaciones*4; ++var) {//si el numero no es esacto añade 0 a la derecha
        b="0"+b;
    }
    for (int var = 0; var < numeroSeparaciones; ++var) {//coge los digitos binarios de 4 en 4 y llamando al metodo anterior, los pasa a hexadecimal
        sol+=hexadecimal(b.substr((var*4),4));
    }
    return sol;
}


Leer fecha por teclado


//pasa la fecha de String a Date para la fecha leida por teclado
private static Date convertirFechaLectura(String fecha){
                        //Formato de la fecha a convertir
SimpleDateFormat formato = new SimpleDateFormat("MM/yyyy");
Date dat = null;
try{
dat=formato.parse(fecha);
}catch(ParseException ex){

}
return dat;
}


//leer entradas del teclado
private static void lecturaTeclado(){
Scanner lee=new Scanner(System.in);//lector
System.out.println("formato fecha "
+ "MM/yyyy -Ej.:03/2016: ");
String fl=lee.next();//leer fecha
fechaTeclado = convertirFechaLectura(fl);//pasar fecha a date
}



Formato de fechas:

Dentro del SimpleDateFormat puedes meter la forma en la que introduces la fecha.
Ejemplo:
"yyyyy-mm-dd hh:mm:ss"
y - dígito del año.
m - dígito del mes en formato numérico.
d - dígito del día del mes (si el día es por ejemplo el 1 se introducirá como 01)
h - dígito de la hora del día
m - dígito del minuto
s - dígito del segundo

Dependiendo del SampleDateFormat el formato del Date es distinto:
   String date_s = " 2011-01-18 00:00:00.0";
   SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss");
   Date date = dt.parse(date_s);
   SimpleDateFormat dt1 = new SimpleDateFormat("yyyyy-mm-dd");
   System.out.println(dt1.format(date));

Convertir un DNI extranjero a int en Java

public static int conversionDni(String dni){
String nuevoDni = "";
switch(dni.charAt(0)){
case 'X':
nuevoDni="0"+dni.substring(1,dni.length());
break;
case 'Y':
nuevoDni="1"+dni.substring(1,dni.length());
break;
case 'Z':
nuevoDni="2"+dni.substring(1,dni.length());
break;
default:
nuevoDni=dni;
break;
}
return Integer.parseInt(nuevoDni);
}

Averiguar la letra del DNI en Java

public static char dniMethod(int numeroDni){
char letra = 0;
int resto = numeroDni%23;
switch(resto){
case 0:
letra='T';
break;
case 1:
letra='R';
break;
case 2:
letra='W';
break;
case 3:
letra='A';
break;
case 4:
letra='G';
break;
case 5:
letra='M';
break;
case 6:
letra='Y';
break;
case 7:
letra='F';
break;
case 8:
letra='P';
break;
case 9:
letra='D';
break;
case 10:
letra='X';
break;
case 11:
letra='B';
break;
case 12:
letra='N';
break;
case 13:
letra='J';
break;
case 14:
letra='Z';
break;
case 15:
letra='S';
break;
case 16:
letra='Q';
break;
case 17:
letra='V';
break;
case 18:
letra='H';
break;
case 19:
letra='L';
break;
case 20:
letra='C';
break;
case 21:
letra='K';
break;
case 22:
letra='E';
break;
}

return letra;

}

Coger la fecha del ultimo día del mes en Java


//método al que le pasas una fecha y te devuelve esa misma fecha pero con el día en el último día del mes.
private static Date ponerDiasFechaFinMes(Date fecha){

     Calendar calendar = Calendar.getInstance();
     calendar.setTime(fecha); // Configuramos la fecha que se recibe
     calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
     return calendar.getTime(); // Devuelve el objeto Date con los nuevos días añadidos

 }

Codificación de mensajes en Android

Envía mensajes a tus amigos sin que nadie pueda saber lo que se envía.
Implementa nuevas funcionalidades y cifrados.
Descarga aquí.

Descarga

Sumar los dias introduciodos a un Date en Java

 public Date sumarDiasFecha(Date fecha, int dias){



      Calendar calendar = Calendar.getInstance();

      calendar.setTime(fecha); // Configuramos la fecha que se recibe

      calendar.add(Calendar.DAY_OF_YEAR, dias);  // numero de días a añadir, o restar en caso de días<0

      return calendar.getTime(); // Devuelve el objeto Date con los nuevos días añadidos

 }

Coger el número de días que tiene un mes en java

Calendar cal = new GregorianCalendar(2010, Calendar.JULY, 1);

int days = cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 28
System.out.println(days);

Cifrado y descifrado Winnowing en Java

Esto es una especie de cifrado Winnowing, al cual le pasas el mensaje y una clave numérica.
El mensaje cifrado que devuelve se calcula de la siguiente manera:
-Coge el mensaje. Entre una letra y otra, mete dos letras inútiles de forma aleatoria.
-Cada letra del mensaje se calcula desplazando la letra tantas posiciones como nos dicte la clave numérica.
Para descifrar el mensaje:
-Coge el mensaje, le quita las letras sobrantes y resta a cada letra tantas posiciones como dicte la clave numérica.



public class Winnowing {

private static String alfabeto = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQ-RSTUVWXYZáéíóúÁÉÍÓÚ0123456789 _,.;:?!";

public static void main(String[] args) {
// TODO Auto-generated method stub
String a = cifrar("Hola esto es un mensaje de prueba", 3);
String b = descifrar(a, 3);
}

public static String cifrar(String texto, int clave){
int[] msg = pasarTextoNumero(texto);

int[] msgConBasura = new int[msg.length*3];

int contador = 0;
for (int i = 0; i < msg.length; i++) {
int numeroLetra = (msg[i]+clave)%alfabeto.length();
msgConBasura[contador]=numeroLetra;
contador++;
msgConBasura[contador]=getRandomArbitrary(0,alfabeto.length()-1);
contador++;
msgConBasura[contador]=getRandomArbitrary(0,alfabeto.length()-1);
contador++;
}

String sol = "";
for (int i = 0; i < msgConBasura.length; i++) {
int posLetra = msgConBasura[i]-1;
if(posLetra<0){
posLetra=posLetra+alfabeto.length();
}
sol+=alfabeto.charAt(posLetra);
}

System.out.println(sol+" "+msg.length+" "+msgConBasura.length);
return sol;
}

public static String descifrar(String texto, int clave){
int[] msg = pasarTextoNumero(texto);

int[] msgSinBasura = new int[msg.length/3];

for (int i = 0; i < msg.length; i+=3) {
int numeroLetra = msg[i]-clave;
if(numeroLetra<0){
numeroLetra=alfabeto.length()+numeroLetra;
}
msgSinBasura[i/3]=numeroLetra;

}

String sol = "";
for (int i = 0; i < msgSinBasura.length; i++) {
int posLetra = msgSinBasura[i]-1;
if(posLetra<0){
posLetra=posLetra+alfabeto.length();
}
sol+=alfabeto.charAt(posLetra);
}

System.out.println(sol+" "+msg.length+" "+msgSinBasura.length);
return sol;
}

// Retorna un número aleatorio entre min (incluido) y max (excluido)
private static int getRandomArbitrary(int min, int max) {
 return (int) (Math.random() * (max - min) + min);
}

//pasa un String a un int[] con el valor de cada letra en el alfabeto
private static int[] pasarTextoNumero(String mensaje){
int[] secuencia = new int[mensaje.length()];//array con la longitud del mensaje
for (int i = 0; i < secuencia.length; i++) {
char letra = mensaje.charAt(i);
int valor = valorLetra(letra);
secuencia[i]=(valor+1)%alfabeto.length();
}
return secuencia;
}

//devuelve la posicion de la letra en el alfabeto
private static int valorLetra(char letra){
for (int j = 0; j < alfabeto.length(); j++) {
if(letra==alfabeto.charAt(j)){
return j;
}
}
return -1;
}

}

Obtener mes de un Date en Java

public int obtenerMes(Date date){

if (null == date){

return 0;

}
else{

formato="MM";
SimpleDateFormat dateFormat = new SimpleDateFormat(formato);
return Integer.parseInt(dateFormat.format(date));

}

}

Obtener día de un Date en Java

if (null == date){

return 0;

}
else{

formato="dd";
SimpleDateFormat dateFormat = new SimpleDateFormat(formato);
return Integer.parseInt(dateFormat.format(date));

}

Obtener año de un date en Java

if (null == date){

return 0;

}
else{

formato="yyyy";
SimpleDateFormat dateFormat = new SimpleDateFormat(formato);
return Integer.parseInt(dateFormat.format(date));

}

}

Aplicación cifrado descifrado en android v4

Descargar


Envía mensajes a tus amigos de forma cifrada para que nadie excepto vosotros podais leerlos.
Además del mensaje tenéis que enviar también la clave para poder descifrarlo.

Descargar

Saber si una cadena tiene números en JavaScript

var numeros="0123456789";

function tiene_numeros(texto){
   for(i=0; i<texto.length; i++){
      if (numeros.indexOf(texto.charAt(i),0)!=-1){
         return 1;
      }
   }
   return 0;
}

Funcion comprobar si un string tiene letras en JavaScript

var letras="abcdefghyjklmnñopqrstuvwxyz";

function tiene_letras(texto){
   texto = texto.toLowerCase();
   for(i=0; i<texto.length; i++){
      if (letras.indexOf(texto.charAt(i),0)!=-1){
         return 1;
      }
   }
   return 0;
}

Coger datos de dentro de un elemento HTML con JavaScript

var parrafo = document.getElementById('p1');
var contenido = parrafo.innerHTML;


por ejemplo:

si tienes un:             <p id="p1">hola</p>
en la variable contenido tienes:          hola

Limpiar formulario en javascript

function cleanForm(frm){
   var inputs = document.frm.getElementsByTagName("input");
   for(var i=0;i<inputs.length;i++){
      inputs[i].value = "";
   }
}

Strings en Javascripts

//con == hace conversion de tipo de datos

var stringA = "Me voy de viaje";
var stringB = new String("Me voy de viaje");
if (stringA==stringB){
// Algunas sentencias
}


//dos formas de comparar cadenas formadas por un numero. Una comparando cadenas y otra pasandolo a int antes de comparar

var stringA = "1";
if (stringA==1){
// Algunas sentencias
}


var stringA = "1";
if (parseInt(stringA)==1){
// Algunas sentencias
}



//con === no hace conversion de datos, por lo que compara a nivel de objeto, es decir, que aparte del contenido de la cadena comparará por la igualdad de las demás propiedades .

var stringA = "Me voy de viaje";
var stringB = new String("Me voy de viaje");
if (stringA===stringB){
// Algunas sentencias
}

Subcadena en Javascript

var str = "Hello world!";
var res = str.substring(1, 4);

salida:
ell

Longitud de cadena en javascript

var str = "Hello World!";
var n = str.length;

Pasar fecha de String a Date con formato MM/YYYY

//pasa la fecha de String a Date para la fecha leida por teclado
private static Date convertirFechaLectura(String fecha){
SimpleDateFormat formato = new SimpleDateFormat("MM/yyyy");
Date dat = null;
try{
dat=formato.parse(fecha);
}catch(ParseException ex){

}
return dat;
}

Coger el dato tamaño de un XML en java

Cuando tienes un juego como el sudoku que tiene un tamaño y lo tienes guardado en un xml, con java puedes coger ese tamaño con este método

private static int comprobarTamaño(String nombre){

try {
File fXmlFile = new File(nombre);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder;
dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);

doc.getDocumentElement().normalize();

return Integer.parseInt(doc.getDocumentElement().getAttributeNode("Tamanio").getValue());


} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block1
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block2doc
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block2doc
e.printStackTrace();
}
return 0;

}

Validar xml en java

private static String validarXML(String ruta) {
String cadena = "";

try {
Source schemaFile = new StreamSource(new File("Schema.xsd"));
Source xmlFile = new StreamSource(new File(ruta));
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(schemaFile);
Validator validator = schema.newValidator();

validator.validate(xmlFile);
cadena="OK";
return cadena;

} catch (SAXException e) {
// Documento erróneo
cadena="Error al validarlo.";
File archivo = new File(ruta);
archivo.delete();
System.out.println(e.toString()+"<br>");
} catch (IOException e) {
e.printStackTrace();
}

return cadena;
}