Autore Topic: Conversione di Data e Ora dal formato date al formato integer  (Letto 2734 volte)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Ho dovuto, in questi giorni, affrontare l'argomento relativo alla conversione di una data dal suo formato originario al formato integer, trasferendo nel contempo il risultato della conversione in due campi numerici distinti, uno per la data e l'altro per l'orario. La data vi viene espresaa in AAAAMMGG, mentre l'orario in oommss. Non è stato semplicissimo perchè, salvo mia ignoranza, non ho trovato una funzione in Gambas che lo facesse direttamente. Allora ho creato un modulo che vorrei, se utile, caricarlo nell'area di download, ma ricordo che attualmente codesta possibilità non sia aperta a tutti. perciò ho pensato di allegare al post corrente il modulo creato. Magari ci sarà un moderatore che, dopo averlo visionato, se lo dovesse ritenere un supporto utile potrebbe interessarsene.
 :D ;D
Ciao a tutti.
:ciao:

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #1 il: 16 Febbraio 2010, 15:12:52 »
Posso complicarti la vita? Potresti creare un parametro del modulo, che accetta una costante da te definita, che dice alla funzione come salvare la data. Mi spiego meglio: se io non voglio il formato AAAAMMGG devo poter scegliere, così da semplificare il mio codice, un formato diverso, magari GGMMAAAA.... ;D

È solo per tenerti impeganto...nulla di più... :P

Comunque complimenti... ;)

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #2 il: 16 Febbraio 2010, 15:41:15 »
Ti ho caricato il file: http://www.gambas-it.org/wp/?page_id=21&wpfb_cat=4

Stasera sposto questa discussione in "Progetti in cerca di aiuto" poichè è la sezione più consona... ;)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #3 il: 16 Febbraio 2010, 16:26:40 »
ceskho hai provato il file prima di upparlo ? perchè a occhio direi che non funziona :P
Codice: [Seleziona]
' Gambas module file

 'Otteniamo la data e l'orario del momento in formatato INTEGER:


PUBLIC DataOraInteger
DIM d_Data AS Date

DIM iData AS Integer
DIM iorario AS Integer

DIM $GG AS String
DIM $MM AS String
DIM $AA AS String
DIM $Data AS String
DIM $ora AS String
DIM $minuti AS String
DIM $secondi AS String


dData = Now
   $GG = Day(dData)
   $MM = Month(dData)
   $AA = Year(dData)
   $ora = Hour(dData)
   IF Len($ora) = 1 THEN $ora = "0" & $ora
   $minuti = Minute(dData)
   IF Len($minuti) = 1 THEN $minuti = "0" & $minuti
   $secondi = Second(dData)
   IF Len($secondi) = 1 THEN $secondi = "0" & $secondi
   $Data = $AA & $_MM & $GG
   idata = Val($Data) - - - - > data(AAAAMMGG) IN formato numerico
   $orario = $ora & $_minuti & $secondi
   iorario = Val($orario) - - - - > orario(hhmmss) IN formato numerico
END
manca la dichiarazioine di funzione e la dichiarazione della variabile DataOra presenta un errore

il formato AAAAMMGG sicuramente è il migliore che si possa utilizzare , perchè con questo formato le date sono facilmente ordinabili dalla minore alla maggiore  o viceversa, facilitando quindi confronti tra due date per trovare la maggiore o minore, cosa che non si potrebbe fare con altri formati
« Ultima modifica: 16 Febbraio 2010, 16:30:09 da fsurfing »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #4 il: 16 Febbraio 2010, 16:56:23 »
@ ceskho:
Citazione
Posso complicarti la vita? Potresti creare un parametro del modulo, che accetta una costante da te definita, che dice alla funzione come salvare la data. Mi spiego meglio: se io non voglio il formato AAAAMMGG devo poter scegliere, così da semplificare il mio codice, un formato diverso, magari GGMMAAAA....  ;D
È solo per tenerti impeganto...nulla di più...  :P
Veramente, impegnato lo sono già abbastanza!  :D :D
Però è un'opportunità alla quale non avevo pensato perchè nella mia idea lo scopo era quello di fornire uno spunto adattabile poi singolarmente alle propire esigenze, per cui non ho pensato di provarne il funzionamento e, di conseguenza, non mi sono accorto degli errori citati da:
ceskho hai provato il file prima di upparlo ? perchè a occhio direi che non funziona :P
Perciò chiedo scusa e procedo alle dovute correzioni.
 :D
Ciao
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #5 il: 16 Febbraio 2010, 17:45:00 »
Stasera sposto questa discussione in "Progetti in cerca di aiuto" poichè è la sezione più consona... ;)

Domanda: Perchè ritieni che questa sia una discussione da "Progetti in cerca di aiuto". Non mi pare che una routinetta da zero cent. abbia bisogno di tanto supporto! Credo invece che, lasciata in "Programmazione",  sia, come dire ... riscontrabile più facilmente.
Ciao.
« Ultima modifica: 16 Febbraio 2010, 17:49:49 da Picavbg »
:ciao:

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #6 il: 16 Febbraio 2010, 23:18:13 »
Potevi anche risolverla cosi'

idata = Val(Format(Now(), "yyyymmdd"))
iorario = Val(Format(Now(), "hhmmss"))

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #7 il: 16 Febbraio 2010, 23:48:54 »
Ti ho caricato il file: http://www.gambas-it.org/wp/?page_id=21&wpfb_cat=4

Ho rivisitato il modulo,correggendo gli errori che conteneva. Visto inoltre che il suo scopo è quello di restituire una data in formato strettamente numerico, da destinare all'uso di formazione di date ed orari per eventuali ordinamenti, non ho aggiunto altre opzioni.
Allego il nuovo file che può così sostituire nella sezione il precedente.
Ti chiedo scusa per il nuovo impegno; questa volta però il codice scritto funziona.
Ciao.
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #8 il: 17 Febbraio 2010, 09:41:28 »
Potevi anche risolverla cosi'
idata = Val(Format(Now(), "yyyymmdd"))
iorario = Val(Format(Now(), "hhmmss"))
Si hai ragione, però il risultato impegna solo i sottocompi della data in maniera completa, mentre questo non succede per  l'orario.
Codice: [Seleziona]
Es.:
 idata = Val(Format(Now(), "yyyymmdd"))
  PRINT i_data
 iorario = Val(Format(Now(), "hhmmss"))
 PRINT i_orario
risultato:
20100217        (cioè 2010 02 17 - come vedi il sottocampo mese occupa due crt)
90220              (cioè 9 02 20 - qui invece il sottocampo ora occupa un solo crt)

Comunque grazie.
 :D
 Ciao.
:ciao:

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Conversione di Data e Ora dal formato date al formato integer
« Risposta #9 il: 17 Febbraio 2010, 15:05:21 »
Ti ho caricato il file: http://www.gambas-it.org/wp/?page_id=21&wpfb_cat=4

Ho rivisitato il modulo,correggendo gli errori che conteneva. Visto inoltre che il suo scopo è quello di restituire una data in formato strettamente numerico, da destinare all'uso di formazione di date ed orari per eventuali ordinamenti, non ho aggiunto altre opzioni.
Allego il nuovo file che può così sostituire nella sezione il precedente.
Ti chiedo scusa per il nuovo impegno; questa volta però il codice scritto funziona.
Ciao.

Nuova versione Modulo ora in area download...http://www.gambas-it.org/wp/?page_id=21&wpfb_cat=4  ;)