macro Inserito: 17 dicembre 2007 Segnala Inserito: 17 dicembre 2007 Scusate l'ignoranza ma esiste una funzione per ricavare il numero del giorno progressivo dall'inizio dell'anno?ho pensato ad una struttura che somma mese per mese l'offset al giorno corrente ma non so come fare con i bisestili...grazie a tutti.
rddiego Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 non credo esista una funzione del genere (almeno non gratis). Ad ogni modo il calcolo è semplice e come suggerimento ti direi di scrivere il programma proprio come tu faresti a calcolare il giorno x su un pezzo di carta. Il bisestile lo calcoli semplicemente aggiungendo un giorno ogni 4 anni a partire da un anno bisestile come il 2004 per esempio. Per esempio poni 2004 come offset degli anni per calcolarti i bisestili. Se sei nel 2008 eseguirai questa operazione : (2008-2004)/4 il risultato ti dà i giorni da aggiungere perchè bisestile. In questo caso aggiungi 1 attenzione che devi aggiungere 1 se il giorno da cercare è maggiore o uguale a 1 marzo dell'anno in corso se è bisestile (risultato dell'operazione senza resto) altrimenti l'aggiungi sempre.Per i mesi fatti una tabella con i giorni dei singoli mesi e associali ad un numero da 1 a 12 (questi numeri puoi usarli come indice indiretto della tua tabella). Insomma vedi tu. Io una volta ho dovuto fare queste operazioni perchè a me addirittura mi servivano i millisecondi passati da un determinato giorno (1-1-2000 00:00:00.000)!!!
macro Inserita: 17 dicembre 2007 Autore Segnala Inserita: 17 dicembre 2007 A me interessa sapere se che numero ha l'attuale giorno dall'inizio dell'anno quindi:se mese = gennaiol 0t offset...se mese = dicembrel 324t offsetl offsetl giornot progressivose annobisestile e mese>marzoprogressivo=progressivo+1stanotte ci provo....speravo in una funzione già fatta...
rddiego Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 quindi il progressivo che dici tu è calcolato per ogni singolo anno non a partire da un anno in poi giusto??allora per sapere se è bisestile basta che prendi l'anno e lo dividi per 4 se il resto è =0 allora è bisestile.Con S7 c'è l'istruzione MOD che calcola il resto di una divisione fra interi
NoNickName Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 2100 è divisibile per 4 ma non sarà bisestile.
macro Inserita: 17 dicembre 2007 Autore Segnala Inserita: 17 dicembre 2007 quello che mi interessa trovare è il progressivo da poter stampare. (es. oggi è il giorno 351)ma con il bisestile non so cosa fare... ...bè penso che proseguo con il mio blocco.... anche se nel 2100 l'applicazione nessuno mi verrà a cercare...
JumpMan Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 Il Formato del tipo di dati DATE rappresenta in una variabile a 16 bit i giorni trascorsi dal 1° gennaio 1990, vedi anche sfc0/sfc1... forse puoi lavorarci un po sopra... Definizione di anno bisestile (fonte wikipedia)Un anno è bisestile se il suo numero è divisibile per 4, tranne che se sia divisibile per 100 (ma è bisestile se è divisibile per 400). Sono cioè bisestili tutti gli anni la cui numerazione termina con le due cifre 04, 08, 12... fino a 96; gli anni che terminano con 00 sono bisestili solo se il numero del secolo è divisibile per 4, cioè il 1600, il 2000, il 2400 eccetera. In sintesi sono bisestili: gli anni divisibili in un multiplo intero di 4, purché non si tratti di anni secolari; gli anni secolari divisibili per un multiplo intero di 400. In linguaggi di programmazione come C, Java, PHP, Perl, si può eseguire il test:((anno % 4 == 0 && anno % 100 != 0) || anno % 400 == 0) <<<< forse questo chiarisce più delle parole sopra...
macro Inserita: 17 dicembre 2007 Autore Segnala Inserita: 17 dicembre 2007 Sarà forse l'ora ma non riesco a cavarci niente...
JumpMan Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 Tradotto in AWL suona più o meno così: O( U( L "Anno" L L#4 MOD // Resto della divisione L L#0 ==D // RLC=1 se anno è divisibile per 4 ) U( L "Anno" L L#100 MOD // Resto della divisione L L#0 <>D // RLC=1 se anno non è divisibile per 100 ) ) O( L "Anno" L L#400 MOD // Resto della divisione L L#0 ==D // RLC=1 se anno è divisibile per 400 ) = "AnnoBisestile"(salvo errori)
macro Inserita: 17 dicembre 2007 Autore Segnala Inserita: 17 dicembre 2007 grazie... avevo fatto senza contare il secolo. non penso che la mia applicazione arrivi a tanto....però se vogliamo esser precisi...
accacca Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 Io farei come suggerisce rddiego tabella 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334come indice tabella usi il meseal valore ottenuto dalla tabella aggiungi i giorni del mesePer gli anni bisestili senza pensarci molto su io farei un'altra tabella0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 stesso algoritmo in base all'anno decidi quale tabella utilizzare.
JumpMan Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 (modificato) grazie... avevo fatto senza contare il secolo. non penso che la mia applicazione arrivi a tanto....Prego...La pensavano così anche quelli che hanno "creato" il millennium bug Se ti piace di più con i salti puoi fare così: L "Anno" L L#4 MOD // Resto della divisione SPN ANB // Se <>0 --> Anno Non Bisestile L "Anno" L L#100 MOD // Resto della divisione SPZ ANB // Se =0 --> Anno Non Bisestile L "Anno" L L#400 MOD // Resto della divisione SPZ AB // Se =0 --> Anno Bisestile ANB: SET R "AnnoBisestile" SPA OK AB: SET S "AnnoBisestile" OK: NOP 0 Modificato: 17 dicembre 2007 da JumpMan
batta Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 (modificato) non credo esista una funzione del genere (almeno non gratis)E chi l'ha detto?Bastava una breve ricerca e si trovava questo.Fa la stessa cosa della funzione Siemens, ma non è protetta, è di libero utilizzo ed è commentata.Basta po calcolare i giorni della data attuale dal 01-01-1990, i giorni dal 01-01 dell'anno corrente dal 01-01-1990 e fare una sottrazione. Modificato: 17 dicembre 2007 da batta
JumpMan Inserita: 17 dicembre 2007 Segnala Inserita: 17 dicembre 2007 (modificato) La funzione FC6, passandogli la data/ora in formato DATE_AND_TIME, restituisce la data in giorni dal 01-01-1990Allora batta senza neanche guardare la tua funzione (mi fido ciecamente ) direi che basta richiamare 2 volte FC6, una volta con la data/ora corrente e una volta con la data 01/01/corrente_anno e poi sottrarre le 2 word che escono ed il gioco è fatto ! Azz... mi sa che ho detto la stessa cosa che hai detto tu, non avevo capito che intendevi fare 2 richiami di FB6... forse è ora di andare a dormire Ciao Modificato: 17 dicembre 2007 da JumpMan
macro Inserita: 17 dicembre 2007 Autore Segnala Inserita: 17 dicembre 2007 x batta .ho scaricato il file linkato ora provoAllora batta senza neanche guardare la tua funzione (mi fido ciecamente smile.gif ) direi che basta richiamare 2 volte FC6, una volta con la data/ora corrente e una volta con la data 01/01/corrente_anno e poi sottrarre le 2 word che escono ed il gioco è fattoprovo anche questa strada... a volte basterebbe far andare i 2 neuroni che mi rimangono più forte che un gatto di marmo....
macro Inserita: 18 dicembre 2007 Autore Segnala Inserita: 18 dicembre 2007 ho modificato la fine del fc 6 di Batta. se non sommi i giorni trascorsi dal 1990 hai i giorni attuali.buonanotte
rddiego Inserita: 18 dicembre 2007 Segnala Inserita: 18 dicembre 2007 La pensavano così anche quelli che hanno "creato" il millennium bugla differenza è che loro hanno programmato le cose non più di 20 anni prima. Fra 90 anni non so se ci saranno ancora i vostri S7
casa74 Inserita: 28 marzo 2009 Segnala Inserita: 28 marzo 2009 salve a tutti ho un aspiratore vortice modello mf-120 t con ,timer attualmente e alimentato tramite pulsante na prememdo un paio di secondi aspiratore si avvia regolarmente .siccome la scheda elettronica e temporizzata il motore si avvia dopo un paio di secondi io vorrei, alimentare aspiratore con relè passo passo interruttore con possibilita che lo posso comandare acc enzione e spegnimento tramite pulsante, non so se lo posso installare il relè perche e un. carico induttivo quanto iltimer stacca io vorrei che stacca anche la bobina del relè, :mi indicate como posso realizzare questo circuito in attsa di una risposta vi ringazio
casa74 Inserita: 1 maggio 2009 Segnala Inserita: 1 maggio 2009 salve a tutti sarei grado che qualcuno mi rispondese grazie
Livio Orsini Inserita: 1 maggio 2009 Segnala Inserita: 1 maggio 2009 Nessuno ti risponde perchè manca qualche dato e poi è un argomento trattatissimo sul forum.Quanto assorbe il tuo motore dell'aspiratore? Con questo dato puoi verificare subito su di un catalogo come quello di Finder se c'è un relè passo passo adatto al tuo scopo. Se l'assorbimento del motore aspiratore è maggiore del massimo consentito dai contatti del relè devi interporre tra questo ed il motore un relè di potenza.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora