Buscando ideas para crear un menú para la página www.llacuadetetique.com me topé con ésta bonita idea, la cual es crear un menú circular:
Donde el código para ponerlo en nuestra web la podemos encontrar en: codigo
/**De ésta forma se crea un archivo que contiene los inserts correspondientes a la consulta pasada como parámetro.
* Método que crea cadenas insert para cada datos leido de una consulta
* @param entrada Consulta a crear los inserts
* @param archivo Ruta del archivo a escribir
* @param tabla Nombre de la tabla donde se insertaran los datos
* @return Si se pudo o no realizar la conversión
*/
public boolean creaInsert(ResultSet entrada, String archivo, String tabla) {
try {
ResultSet salidaRS = entrada;
ResultSetMetaData rsmd = salidaRS.getMetaData();
String consulta = "";
consulta = "insert into " + tabla + " (";
for (int k = 1; k < rsmd.getColumnCount(); k++) {
consulta = consulta + rsmd.getColumnName(k + 1) + ",";
}
consulta = consulta.substring(0, consulta.length() - 1) + ") VALUES(";
for (int k = 1; k < rsmd.getColumnCount(); k++) {
if (rsmd.getColumnTypeName(k + 1).contains("INTEGER")) {
consulta = consulta + "" + salidaRS.getString(k + 1) + ",";
} else if (salidaRS.getString(k + 1) == null || salidaRS.getString(k + 1).contains("null") || salidaRS.getString(k + 1).contains("----")) {
consulta = consulta + "null,";
} else {
consulta = consulta + "'" + salidaRS.getString(k + 1) + "',";
}
}
consulta = consulta.substring(0, consulta.length() - 1) + ");";
File f;
f = new File(tabla + ".txt");
if (!f.exists()) {
f.createNewFile();
}
escribeArchivo(tabla, consulta);
return true;
} catch (Exception a) {
a.printStackTrace();
}
return false;
}
public ResultSet DMAdiferencia(String inicio, String fin) { try { ResultSet diferencia = this.derby.createStatement().executeQuery("" + "SELECT {fn TIMESTAMPDIFF(SQL_TSI_YEAR,{ts '" + inicio + " 00:00:00' },{ts '" + fin + " 00:00:00'}) } AS ANIOS, " + " ( ( {fn TIMESTAMPDIFF(SQL_TSI_MONTH,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'})}) - ( {fn TIMESTAMPDIFF(SQL_TSI_YEAR,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'}) } * 12)) AS MESES, " + " -( {fn TIMESTAMPDIFF(SQL_TSI_DAY,{ts '" + fin + " 00:00:00'}," + " {fn TIMESTAMPADD ( SQL_TSI_MONTH," + " (({fn TIMESTAMPDIFF(SQL_TSI_MONTH,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'})}) - ( {fn TIMESTAMPDIFF(SQL_TSI_YEAR,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'}) } )* 12 )," + " {fn TIMESTAMPADD( SQL_TSI_YEAR," + " ({fn TIMESTAMPDIFF(SQL_TSI_YEAR,{ts '" + inicio + " 00:00:00'},{ts '" + fin + " 00:00:00'})}), {ts '" + inicio + " 00:00:00'} " + " )}" + " )}" + " )" + "}) " + "AS DIAS"); return diferencia; } catch (Exception a) { a.printStackTrace(); } return null; }
ResultSet salida= DMAdiferencia("2013-01-01","2013-12-12"); int dias= salida.getInt("DIAS"); int meses=salida.getInt("MESES"); int anios= salida.getInt("ANIOS");Ojo, la fecha debe estar en formato YYYY-MM-DD.
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package utils; /** * * @author cabachu */ import java.io.*; import java.util.*; // calcula el digito verificador de la CRIP para siglo pasado y el siglo actual // necesita tomar los valores de entidad, municipio, oficialia, acta y año //regresa un string que contiene la CRIP public class CalculaCrip { public String obtener_crip( String strEntidad, String strMunicipio, String strOficialia, String strAnio, String strActa) { String strdatos = ""; String strletras = "JABCDEFGHIJ "; // constantes de letras String strnumeros = "012345678900";// constantes de numeros int ik[] = {3, 2, 7, 6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2}; // constante para calcular la crip int[] imul = new int[16]; int[] inum = new int[16]; int isuma = 0; int ix = 0; int ia = 0; int idigito = 0; if (strEntidad.length() == 1) { strEntidad = "0" + strEntidad; } // se agrega un cero si vien 1 solo digito if (strMunicipio.length() == 1) { strMunicipio = "00" + strMunicipio; }// se agregan ceros hasta copletar 3 digitos if (strMunicipio.length() == 2) { strMunicipio = "0" + strMunicipio; } if (strOficialia.length() == 1) { strOficialia = "0" + strOficialia; }// se agregan ceros hasta copletar 2 digitos if (strActa.length() == 1) { strActa = "0000" + strActa; }// se agregan ceros hasta copletar 5 digitos if (strActa.length() == 2) { strActa = "000" + strActa; } if (strActa.length() == 3) { strActa = "00" + strActa; } if (strActa.length() == 4) { strActa = "0" + strActa; } strdatos = strEntidad + strMunicipio + strOficialia + strAnio.substring(2, 4) + strActa; // se contatena la raiz para calcular el digito System.out.println(strdatos); // a cada numero de la raiz se le multiplica por un nuemro de la constante y se suman for (ia = 0; ia < 14; ia++) { inum[ia] = Integer.valueOf(strdatos.substring(ia, ia + 1)).intValue(); imul[ia] = inum[ia] * ik[ia]; isuma = isuma + imul[ia]; } // se obtiene el digito verificador ix = isuma % 11; System.out.println("suma "); System.out.println(isuma); System.out.println("digito antes de resta "); System.out.println(ix); if (ix <= 0) { idigito = 0; } else { idigito = 11 - ix; } // se evalua el año y se coloca el digito verificador numero o letra System.out.println("valor de comparacion"); System.out.println(strAnio.compareTo("1999")); if (strAnio.compareTo("1999") > 0) { if (idigito == 0) { strdatos = strdatos + "J"; } else { System.out.println(idigito); strdatos = strdatos + strletras.substring(idigito, idigito + 1); } } else { System.out.println(idigito); strdatos = strdatos + strnumeros.substring(idigito, idigito + 1); } System.out.println(strdatos); return strdatos; } }