giovedì 25 giugno 2009

ASP - Controllare se una data è compresa tra altre due date - v2

Quando feci  questo articolo mi promisi che avrei rivisto quella funzione e ne avrei fatta una più completa appena il tempo e la voglia me lo avrebbero permesso.

Ora scrivo questo post per mettere finalmente quest'altra funzione.
Spero di non aver fatto errori clamorosi dei quali non mi sono accorto ma penso che Lo script funzioni correttamente!

La funzione si chiama sempre dateBetween ma ora è così:

Function dateBetween(data1,data2,data,repeat,result)

La funzione dateBetween restituisce TRUE o FALSE rispettivamente se il calcolo è andato a buon fine oppure se c'è stato un errore.

I parametri da passare a lla funzione sono i seguenti:
  • data1 [data valida] - contiene la data di inizio intervallo
  • data2 [data valida] - contiene la data di fine intervallo
  • data [data valida] - contiene la data da testare
  • repeat [true|false] - imposta se il calcolo deve essere ripetuto ogni anno
  • result - se dateBetween restituisce FALSE viene restituito il messaggio di errore. Se dateBetween restituisce TRUE viene restituito TRUE o FALSE a seconda dell'esisto del test.

La nuova funzionalità "repeat" serve per testare gli intervalli ogni anno. Se per esempio vogliamo sapere in che stagione ci troviamo dobbiamo passare alla funzione la data di inizio e di fine di una stagione in un anno qualsiasi e poi mettere "repeat" a TRUE. In questo caso l'intervallo tra le due date deve necessariamente essere massimo un anno.

Il ogni caso la funzione e proprio un esempio di utilizzo di quest'ultima la trovi zippata qua.

Se hai problemi o domande non esitare a contattarmi.

lunedì 5 gennaio 2009

ASP - Controllare se una data è compresa tra due date

FUNZIONE RIFATTA - QUESTA FUNZIONE E' VECCHIA
Guarda quella nuova

Hai la necessità di controllare se una data è compresa tra altre due date?
Visto che non esiste nessuna funzione ASP per fare ciò eccone una fatta in casa!

<%
function checkZerosDate(num)
if len(num)=1 then
checkZerosDate= "0" & num
else
checkZerosDate=num
end if
end function

Function dateBetween(data1,data2,data)
dim ndata1,ndata2,ndata

'controllo che siano date
if isdate(data1) and isdate(data2) and isdate(data) then
ndata1=year(data1) & checkZerosDate(month(data1)) & checkZerosDate(day(data1))
ndata2=year(data2) & checkZerosDate(month(data2)) & checkZerosDate(day(data2))
ndata=year(data) & checkZerosDate(month(data)) & checkZerosDate(day(data))
if (ndata1<=ndata) and (ndata<=ndata2) then
dateBetween=true
else
dateBetween=false
end if
else
' se non sono date restituisco falso
dateBetween=false
end if
end function
%>


Come puoi notare la funzione principale è "dateBetween" alla quale bisogna passare come parametri:
  • data1 : data di inizio intervallo
  • data2 : data di fine intervallo
  • data : data da testare
Se non vengono passate delle date valide la funzione restituisce il valore booleano false

La funzione restituirà il valore booleano True se data è compresa tra data1 e data2 oppure False se non lo è.

Per funzionare questa funzione si deve appoggiare alla funzione checkZerosDate che non fa altro che formattare i valori a una cifra del giorno/mese in uno a due cifre!

Come sempre non può mancare lo zippo con lo script e un esempio!

Stop! :D
FUNZIONE RIFATTA - QUESTA FUNZIONE E' VECCHIA
Guarda quella nuova



sabato 3 gennaio 2009

JAVASCRIPT - HtmlEncode

Ed eccomi che forse ho trovato (in più testato e corretto) una semplice funzione per fare l'htmlencode (funzione ASP) lato client!!! Era ora! :D

Si tratta di un piccolo script javascript che puoi inserire nelle tue pagine!

Ho testato (e modificato dove si presentavano problemi) questo script con i seguenti browser:
  • Microsoft Internet explorer 6,7
  • Mozilla Firefox 3
  • Opera
  • Apple Safari
  • Google Chrome

La funzione è la seguente:


<script type="text/javascript">
<!--
function HTMLEncode(str) {
var div = document.createElement('div');
var text = document.createTextNode(str);
div.appendChild(text);
text=div.innerHTML;
text=text.replace(/"/g,"&quot;");

// Lettere accentate -------------

text=text.replace(/à/g,"&agrave;");
text=text.replace(/è/g,"&egrave;");
text=text.replace(/é/g,"&eacute;");
text=text.replace(/ì/g,"&igrave;");
text=text.replace(/ù/g,"&ugrave;");
text=text.replace(/ò/g,"&ograve;");

//--------------------------------
//-------Fix Safari problem-------
text=text.replace(/</g,"&lt;");
text=text.replace(/>/g,"&gt;");
//--------------------------------
return text;
}
//-->
</script>

Basta richiamarla e passare come parametro il testo sul quale vogliamo fare l'encode. La funzione restituirà il testo codificato!

Per ora ho notato che non tutti i caratteri speciali sono supportati! Per esempio il simbolo dei gradi --> ° Rimane tale (sulla mia macchina, con le mie impostazioni) mentre l'htmlencode di asp lo traduce in &deg; (o &#176; a seconda delle impostazioni del server) !!!! Insomma, non si può avere tutto dalla vita ma a grandi linee così potrebbe già essere sufficiente! :D
Se qualcuno ha voglia di star li a provarli tutti può!!!

Chi dovesse riscontrare problemi è invitato a segnalarli in un commento a questo post che magari possiamo provare a fixarli! ;)

Alla prox!

giovedì 1 gennaio 2009

FIREFOX - Prova Scribefire

Questo è un test di Scribefire (ex performancing)

proviamo.....


<%
   response.write("Prova di un codice ASP")
%>


Grassetto
Corsivo
Sottolineato
Link

Immagine:

Test fallito. Errore nel caricare sul blog. Potrei appoggiarmi al mio sito però...
Vedrò!!!

Beh... è una bella storiaccia!!! Molto carino e migliorato dall'ultima volta che l'ho provato!!!!