venerdì 6 agosto 2010

[LINK] - Database Aeroporti del Mondo

Un database di 9300 aeroporti del mondo scaricabile e completissimo.
Riporto i campi dal sito:


The fields are in the following order and have the following properties and meanings:
  • Field 01 - ICAO Code: 4 character ICAO code
  • Field 02 - IATA Code: 3 character IATA code
  • Field 03 - Airport Name: string of varying length
  • Field 04 - City,Town or Suburb: string of varying length
  • Field 05 - Country: string of varying length
  • Field 06 - Latitude Degrees: 2 ASCII characters representing one numeric value
  • Field 07 - Latitude Minutes: 2 ASCII characters representing one numeric value
  • Field 08 - Latitude Seconds: 2 ASCII characters representing one numeric value
  • Field 09 - Latitude Direction: 1 ASCII character either N or S representing compass direction
  • Field 10 - Longitude Degrees: 2 ASCII characters representing one numeric value
  • Field 11 - Longitude Minutes: 2 ASCII characters representing one numeric value
  • Field 12 - Longitude Seconds: 2 ASCII characters representing one numeric value
  • Field 13 - Longitude Direction: 1 ASCII character either E or W representing compass direction
  • Field 14 - Altitude: varying sequence of ASCII characters representing a numeric value corresponding to the airport's altitude from mean sea level (ie: "123" or "-123")

giovedì 22 luglio 2010

[JAVASCRIPT] - Controllo data e Differenza in giorni tra due date

Passando alla funzione le due date controlliamo che la data iniziale non sia maggiore di quella finale e viceversa e che la differenza tra due date, in questo caso, non sia maggiore di 30.
Comunque leggendo lo script c'è la soluzione per trovare la differenza in giorni tra due date.
N.B.: dobbiamo convertire una stringa in data col metodo date() passando la data in formato MM-GG-AAAA.

function ControllaData(data_dal, data_al)
   {
   // PRENDO I DUE CAMPI DATA DAL FORM
   //avvio_previsto = document.info.data_arrivo_hotel.value;
   //consegna_prevista = document.info.data_partenza_hotel.value;
   
   data_dal_ggmmaaaa = data_dal
   data_al_ggmmaaaa = data_al
   
   //SUDDIVIDO I DUE CAMPI IN ANNO MESE E GIORNO
   anno_data_dal = data_dal.substr(6, 4);
   mese_data_dal = data_dal.substr(3, 2);
   giorno_data_dal = data_dal.substr(0, 2);
  
   anno_data_al = data_al.substr(6, 4);
   mese_data_al = data_al.substr(3, 2);
   giorno_data_al = data_al.substr(0, 2);
   
   //anno_oggi = data_oggi.substr(6, 4);
   //mese_oggi = data_oggi.substr(3, 2);
   //giorno_oggi = data_oggi.substr(0, 2);

   
   //trasformo le date nel formato aaaammgg (es. 20081103)
   data_dal_amg = parseInt(anno_data_dal + mese_data_dal + giorno_data_dal, 10);
   data_al_amg = parseInt(anno_data_al + mese_data_al + giorno_data_al, 10);
   //data_today = parseInt(anno_oggi + mese_oggi + giorno_oggi, 10);
   
   //var my_date = new Date()
   //my_date.getDate()
   
var data1 = new Date(mese_data_dal + "-" + giorno_data_dal + "-" + anno_data_dal);
var data2 = new Date(mese_data_al + "-" + giorno_data_al + "-" + anno_data_al);
var one_day=1000*60*60*24;
giornidiff = Math.ceil((data2.getTime()-data1.getTime())/(one_day))
/*alert(data1);
alert(data2);
alert(one_day);
alert(giornidiff);*/

//alert (data2);

   if (data_dal_amg - data_al_amg > 0)
       {
alert("La data INIZIALE non può essere SUCCESSIVA alla DATA FINALE!");
document.info.data_dal.value = data_al_ggmmaaaa;
document.info.data_dal.focus();
err = true
       return err;
}
else if  (data_dal_amg - data_dal_amg < 0) 
{
alert("La DATA FINALE non può essere ANTECEDENTE alla data INIZIALE!");
document.info.data_al.value = data_dal_ggmmaaaa;
document.info.data_al.focus();
err = true
       return err;
}
else if  (giornidiff > 30) 
{
alert("La DATA FINALE non può essere MAGGIORE DI 30 giorni rispetto alla data INIZIALE!");
document.info.data_al.value = data_dal_ggmmaaaa;
document.info.data_al.focus();
err = true
       return err;
}
   else
       {
err = false
       return err;
       }
   }

mercoledì 14 ottobre 2009

[UTILITIES] - Ridimensionare una foto con un Powertoy di Windows Xp

Andando sul link che vi scriverò sotto potrete installare un Powertoy di Windows XP che aggiunge una funzione al menu che appare cliccando col tasto destro su una immagine aperta con il visualizzatore di immagini per Xp (quello di Default per intenderci).
Grazie ad esso potrete ridimensionare in maniera facile e veloce una qualsiasi immagine.

Ecco il link:
http://download.microsoft.com/download/whistler/Install/2/WXP/EN-US/ImageResizerPowertoySetup.exe

martedì 6 ottobre 2009

[ASP] - Operatori logici Somme Divisioni Resto Moltiplicazioni

() vengono prima effettuati i calcoli in parentesi
^ potenza (x^y -> x elevato y)
- negazione (- x -> x * -1)
* prodotto
/ divisione (risultato 5.321)
divisione tra numeri interi (risultato 5)
Mod modulo (trova il resto di una divisione, 5 Mod 2 -> 5 diviso 2 ha un resto di 1)
+ addizione
- sottrazione
& unione stringhe (unisce stringhe x & y)
= uguale (x=y)
<> diverso (x<>y -> x diverso da y)
< minore (x x minore di y)
> maggiore (x>y -> x maggiore di y)
<= minore uguale (x<=y -> x minore o uguale a y)
>= maggiore uguale (x>=y -> x maggiore o uguale a y)
Not (Not x -> x al contrario, ovvero se è Vero diventa Falso o viceversa)
And entrambi stesso valore vero o falso ( x AND y, se entrambi sono valori veri)
Or almeno uno valore vero (x OR y, se almeno uno è vero o falso)
Xor falso (x Xor y, se solo uno dei due è Vero o Falso)
Eqv entrambi valore falso o vero (x Eqv y, entrambi con valore vero)
Imp uno è falso l'altro è vero (x imp y, x è falso e y vero)

martedì 1 settembre 2009

[SQL] [ACCESS] - COUNT DISTINCT in Access

In DB come SQL Server, Oracle e MySql, la funzione COUNT(Distinct) conta il numero di termini univoci in un dato rowset.

SELECT Count(Distinct risposte) AS R FROM tRisposte

In Access per fare la stessa cosa dobbiamo invece scrivere:
SELECT Count(*) AS R
FROM
(SELECT DISTINCT risposte FROM tRisposte) AS T;

giovedì 28 maggio 2009

[JAVASCRIPT] - Controllo di 2 o più RADIO BUTTON contemporaneamente

Ho un form con due campi RADIO da selezionare.
SESSO: da scegliere se M o F.
ANZIANITA: da scegliere se "meno di tre anni" o "più di tre anni"

ENTRAMBE le "RADIO" sono OBBLIGATORIE.

Se una delle due non è stata selezionata si apre un ALERT indicando il campo mancante.

L'azione per passare alla pagina successiva può avvenire tramite pulsante, scrivendo la ACTION nel FORM, oppure con un qualunque collegamento in un testo o in una immagine con <a> </a> in ogni caso richiamando la funzione PROCEDI.


<script language="javascript">
function gotopage(pPagina)
{
document.info.method="post";
document.info.action=pPagina;
document.info.submit();
}

//********* CONTROLLO ALMENO UN CAMPO SELEZIONATO *****************************
function procedi(ind)
{

errore_sesso=true //variabile che mi dice se ci sono errori
errore_anzianita=true //variabile che mi dice se ci sono errori
cont=0 //contatore errori
campi=0 //campo che non stato valorizzato

str = new Array();
str[1] = "SESSO";
str[2] = "ANZIANITA DI RUOLO";

for (counter = 0; counter < document.info.sesso.length; counter++)
{
if (document.info.sesso[counter].checked)
{errore_sesso=false;break;}
}

if (errore_sesso==true)
{
++cont;
campi=1;
}

for (counter = 0; counter < document.info.anzianita.length; counter++)
{
if (document.info.anzianita[counter].checked)
{errore_anzianita=false;break;}
}

if (errore_anzianita==true)
{
++cont;
campi=2;
}

if(errore_sesso==false & errore_anzianita==false)
{
//possiamo andare avanti
gotopage(ind)
}
else
{
//messaggio di errore
if(cont!=1)
{
alert("Attenzione Non hai compilato alcuni campi obbligatori")
}
else
{
alert("Attenzione! " + str[campi] + " è un campo obbligatorio.")
}
}
}


//*****************************************************************************
</script>


<form name="info" action="javascript:procedi('pagina_successiva.asp')" >

<input type="radio" name="sesso" value="M">

<input type="radio" name="sesso" value="F">

<input type="radio" name="anzianita" value="meno di 3 anni">

<input type="radio" name="anzianita" value="piu di 3 anni">

<a href="javascript:procedi('domanda2.asp')"> avanti </a>

</form>

[JAVASCRIPT] - Controllo Checkbox

<script language="javascript">
function gotopage(pPagina)
{
document.info.method="post";
document.info.action=pPagina;
document.info.submit();
}

//********* CONTROLLO ALMENO UN CAMPO SELEZIONATO *****************************
function procedi(ind)
{

err=true //variabile che mi dice se ci sono errori

for (counter = 0; counter < document.info.email.length; counter++) {
if (document.info.email[counter].checked)
err = false;
}

if(err==false)
{
//possiamo andare avanti
gotopage(ind)
}
else
{
//messaggio di errore
alert("Attenzione! Devi selezionare almeno un contatto")
}
}
//*****************************************************************************
</script>


<form name="info" method="post" action="javascript:procedi('pagina_successiva.asp')">

<input type="checkbox" name="email" id="email" value="<%=variabile%>">

<input type="checkbox" name="email" id="email" value="<%=variabile%>">

</form>