venerdì 30 novembre 2007

ASP - Come verificare se un'anno è bisestile

In questo post presenterò il codice ASP che ci permette di verificare se un anno è bisestile o no.

Lo script è composto da una funzione principale, cuore del calcolo, e da un "blocco if" con il quale si intercetta la risposta.

E' utile fare in questo modo ( e non con una sola semplice funzione) per poter verificare anche se sono avvenuti errori nel calcolo.

Il codice è il seguente:


<%
Function annobisestile(data_num)
on error resume next
if not(isempty(data_num) or isnull(data_num) or len(trim(data_num))=0) then 'se c'è un parametro
if err<>0 then annobisestile=vbnull
if isnumeric(data_num) then 'se è un anno
if data_num<>0 then 'se è diverso da zero
anno=abs(data_num) 'anni negativi vengono considerati positivi
end if
elseif isdate(data_num) then' se è una data
anno=year(data_num) 'estrapolo l'anno
else 'se non è né una data né un anno
annobisestile=vbNull
end if
if err<>0 then annobisestile=vbnull

'/***********************************************************************************/
'/ Un anno è bisestile se è divisible per 4 ma NON per 100. Però è bisestile */
'/ se è divisibile per 400 */
'/***********************************************************************************/

'controllo se è bisestile
if ( ( ( anno mod 4 = 0) and ( anno mod 100 <> 0 ) ) or ( anno mod 400 = 0) )then
annobisestile=true
else
annobisestile=false
end if
if err<>0 then annobisestile=vbnull
else 'se non c'è nessun parametro
annobisestile=vbNull
end if
end function

strtest=2007
if annobisestile(strtest)=true then
'qua il codice che volete se l'anno è bisestile
elseif annobisestile(strtest)=vbnull then
'qua il codice che volete se c'è stato un errore
' o non è stato passato un parametro corretto
else
'qua il codice che volete se l'anno NON è bisestile

end if
%>


Se siete sicuri di passare alla funzione un parametro corretto, ossia un numero corrispondente ad un anno (maggiore di 0 e positivo) o una data in un formato corretto allora potete semplificare il "blocco if" in questo modo:


strtest=2007
if annobisestile(strtest) then
'qua il codice che volete se l'anno è bisestile
else
'qua il codice che volete se l'anno NON è bisestile
end if


Spero di essere stato chiaro! Se volete scaricare lo script questo è il link.
Nello script dello Zip non è presente il secondo blocco if, quello semplice.

Se avete domande, critiche e/o suggerimenti o semplicemente volete delucidazioni non esitate a contattarmi

Alla prossima!


Aggiornamento:

Quella mostrata sopra è una "funzione didattica" :D . aggiorno questo post per metterne un'altra molto meno complessa che fa la stessa cosa. La funzione è questa:


<%
function
annobisestile(anno)
    dim miadata
    if isdate(anno) then
        miadata="28/02/" & year(anno)
    else
        miadata="28/02/" & anno
    end if
    miadata=dateadd("d",1,miadata)
    if day(miadata)=29 then
       
annobisestile=true
    else
       
annobisestile=false
    end if
end function
%>

Attenzione però che in quest'ultima funzione non ho messo un controllo errori quindi devi essere sicuro di passare come valore un anno o una data!
Il resto è uguale. La funzione restituisce il valore booleano true se l'anno è bisestile o false se non lo è.

Nello zippo sopra lincato NON è inclusa quest'ultima funzione!

sabato 20 ottobre 2007

ASP - Script ASP per calcolare l'età di una persona!

Ciao a tutti!

Visto che, tra le 1000000 funzioni sulle date presenti nell'asp, non esiste una funzione specifica per calcolare l'età di una persona in modo corretto tenendo conto anche del giorno di nascita di quest'ultima, ecco che vi mostro una piccola funzione

Function calcolaeta(datanascita,data)
'calcolo gli anni che devi compiere l'utente
eta=datediff("yyyy",datanascita,data)
'calcolo il giorno del compleanno dell'anno corrente dell'utente
birday=dateadd("yyyy",eta,datanascita)
'tengo conto del giorno!
if datepart("y",data)< datepart("y",birday) then
eta=eta-1
end if
calcolaeta=eta
End Function

Alla funzione bisogna passare 2 parametri, la data di nascita e la data (per esempio quella odierna) per la quale vogliamo conoscere l'età!
La funzione restituirà un numero che corrisponde all'età corretta!

Nello sviluppare questa piccola funzione mi sono accorto che, per come la stavo facendo subito, avrebbe avuto problemi nel calcolare l'età corretta se l'anno fosse stato un anno bisestile (avrebbe potuto sbagliare il calcolo di un giorno) allora se vi sembra strano che abbia fatto quello che ho fatto tenete conto anche di quello!
Se ancora vi sembrerà strano allora probabilmente sono io che non ho fatto la scelta più comoda e veloce!
Illuminatemi!

Se vi interessa qua lo script zippato!


Ciao e alla prossima!

mercoledì 5 settembre 2007

Di nuovo ferie e... brutto tempo!

Ciao a tutti! Finalmente io sono di nuovo in ferie, questa volta, sponsorizzate dal mio turbo fratello! Sono ad alba adriatica in un residence a 3 stelle molto molto carino con terrazzo e piscina (sul terrazzo...)! Ho notato solo ultimamente un access point wireless nel corridoio e chiedendo mi è stato detto che offrono gratuitamente la annessione ad internet quindi mi collego con il cell. Ho già scaricato pure firefox in 2minuti. Cazzo ci metto meno col cellulare qua che a casa... Noi sfigati senza adsl...

Purtroppo però ieri ci ha raggiunto un bel temporale con i fiocchi e ora c'è quasi freddo.... Amen... Si passerà il tempo facendo sport da camera!! Poco male....

vi saluto tutti e termino allegando qualche foto (in teoria si dovrebbero vedere...) della vista dalla terrazza del residence!
ciaoooooooooooo :-)

martedì 31 luglio 2007

prova!

Che fissa! Questa è una prova!

mercoledì 25 luglio 2007

WINDOWS - IIS 7 Su windows Vista e connessioni a database mdb

In questo post descriverò quello che ho personalmente fatto per "far funzionare" l'iis 7 di windows Vista Business per un'applicazione Asp che sfrutta i database mdb.

Sebbene l'iis sia un server microsoft ho scoperto che per far funzionare le pagine con estensione '"asp" (ossia linguaggio microsoft...) bisogna attivare una funzione.

Start --> Pannello di controllo --> Programmi e funzionalità --> Attivazione o disattivazione delle funzionalità di Windows --> Internet Information Services (selezionarlo se non ancora installato...) --> Servizi Web --> Funzionalità per lo sviluppo di applicazioni --> Selezionate quello che vi interessa. personalmente ho attivato tutto tranne 'Cgi' !

Date l'ok e terminate l'installazione.

Una volta configurata un'applicazione dal pannello dell'iis situato in Start --> Pannello di controllo --> Strumenti di amministrazione --> Gestione internet Information Service noterete che avrete problemi se la vostra applicazione utilizza connessioni a database ".mdb".

Occorre dare i permessi di scrittura a 2 cartelle. Una è quella contenente il database e l'altra è quella situata in
"C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp"
(quest'ultima cartella perché l'iis 7 apre i file temporanei di connessione al database in questa cartella e non nella cartella dove è presente il database).
Date i permessi di scrittura e lettura agli utenti che accedono all'applicazione e agli utenti:
IUSR
IIS_IUSR

Smanettate un po e vedrete che tutto funzionerà!
Io ho aggiunto anche il mio utente windows e gli ho dato i permessi di scrittura...!

Alla prossima!

Leggi anche:
Database e IIS 7
Dare permessi alle cartelle con windows vista

venerdì 20 luglio 2007

Salvare i preferiti (e la base) del tomtom mobile 6

Come salvare i preferiti del tom tom mobile 6?

Per fare il backup di tutti i preferiti (le posizioni salvate), impostazioni della base e altro, bisogna salvare il file .cfg nella cartella delle mappe.

Copiatelo dai file del tomtom corrente e sovrascrivetelo (o semplicemente aggiungetelo) nella cartella delle mappe del tomtom "nuovo" che state installando.

Avviate il tomtom e verificate se i vostri cari vecchi preferiti ci sono ancora! :-)

Come al solito raccomando di fare sempre un backup ai file originali prima di fare qualsiasi modifica in modo da poter riportare il tutto alle impostazioni di partenza nel caso qualcosa andasse storto!

giovedì 5 luglio 2007

breve vacanza!

Finalmente sono arrivato in montagna, ad Andalo , e l'aria è veramente piena e pulita... E c'è pure quasi freddo! Proprio l'opposto che dalle nostre parti! Seppur starò solo 4 giorni vedrò di godermeli!

saluti da Andalo! E per chi le fa, buone ferie!!!

martedì 3 luglio 2007

prova post

Questa è un'ennesima prova di pubblicazione di posts con il mio nuovo cellulare! Se non va mi inca$$o ma dovrebbe andare....

ciao a tutti!

venerdì 18 maggio 2007

Guidare una SkyWatcher HEQ5 SynScan Pro con Winstars 2.0

Ciao a tutti!
Al mio ritorno dall'ospedale i miei amici mi hanno regalato una montatura Heq5 Skyscan Pro (grazie di nuovo, non smetterò mai di dirlo...) e in questo post descriverò come comandarla con il software astronomico Winstars 2.0, dato che io stesso non ho trovato nessuna guida al riguardo e nelle istruzioni della montatura si parlava di una voce di un menù che si è rivelata insesistente!

Prima di tutto dovete scaricare i protocolli ASCOM da questa pagina ! Una volta installati collegate ad una porta com del vostro pc la pulsantiera skyscan ed aprite Winstars 2.0.
Dal menu 'Telescope' premete 'configuration': vi troverete davanti questa finsestra:

Selezionate dal menu a tendina 'Celestron Telescope' e cliccate su 'Proprieties'; vi si aprirà questa finestra:
Inserite tutti i dati necessari, il protocollo 'Nexstar 5' nella voce ScopeType e la porta com alla quale avete collegato il telescopio. Se non sapete a quale porta è collegato il tele potete scaricare un'utility presente a questa pagina chiamato "Connection Detector" che, quasi sempre, vi trova la porta alla quale è connsesso il tele!


Fatto ciò premete Ok e ancora Ok! Aquesto punto Winstars prova ad inizializzare automaticamente il tele. Se questo riesce, in basso a destra, compare la scritta "Telescope Mode"!
Nel caso non comparisse, dal menù "telescope" premete "Open connection Telescope" e controllate che non vi dia errori. In tal caso provate a cambiare la porta com...

Ora non vi resta che "doppiocliccare" col tasto destro su un oggetto e, nel menu a tendina che si apre, cliccare sulla voce "Follow"!

Il telescopio, se tutto è andato bene, comincerà a muoversi e puntare l'oggetto in questione!

Detto questo buon divertimento! Se avete problemi contattatemi e, se possibile, vi darò una mano!

ps. voglio puntualizzare che io ho aggiornato il firmware della mia pulsantiera con l'ultima versione disponibile, la 3.12 e non c'è bisogno di selezionare la voce "RS-232" dal menu "Utilities" della pulsantiera come invece, viene descritto nelle istruzioni della montatura (per lo meno, quelle che ho io...) ! Le varie versioni firmware le trovate sempre a questa pagina!

Salustri e alla proxima! ;-)

sabato 5 maggio 2007

FIREFOX - Identificarsi come un qualsiasi browser con Firefox

Visto che ho scaricato questa estensione di Firefox il 21 dicembre 2006 e sono stato male il 23 non ho ancora messo niente al riguardo on line: lo faccio ora.
Si tratta di una estensione per firefox con la quale diciamo al browser di identificarsi come un qualunque browser o addirittura qualcosa di inventato! Se ai vostri siti qualcuno accede con il Browser "Sbobba" quello sono senzaltro io (o il GiampaZ :-D )

Potete scaricare l'estenzione da qui!
Una volta installata potete accedervi dal menu Strumenti di Firefox. E' semplicissima come utilizzo. Semplicemente tra le variabili "servervariabiles" di un server che state visitando viene inviato dal vostro browser un nome "fasullo"! Diciamo che non serve a molto per i comuni mortali ma per i webmasters può tornare veramente utile testare una pagina web in funzione del browser utilizzato.

Notate che naturalmente Firefox utilizza sempre lo stesso motore di visualizzazione di cui è proprietario, non usa i motori di altri browser (con questa estensione...) ma si limita ad identificarsi in modo diverso!

Personalmente per utilizzare il motore di internet explorer DENTRO Firefox io uso l'estensione chiamata IEtab!

Alla prossima!