Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C#] Confronto Date

    Ciao,

    Ho un database MSSQL 2005, in cui ho un campo datetime, dopo aver estratto il dato ed inserito in una variabile DateTime, volevo sapere in che modo potevo confrontare quella data, con la data odierna e sapere se erano trascorsi più di 1 mese (oppure 2, o 3 a seconda delle mia preferenza...)

    Perchè incrementare il mese di uno e vedere se la data del girono è maggiore o minore, nel caso in cui ci troviamo a dicembre scatterebbe l'anno nuovo e questo confronto sarebbe sballato...

    Qualche consiglio?


    Grazie

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    DateTime dataDelDB = caricoilDatodalDB();
    dataDelDB .Subtract(DateTime.Now)); //ti ritorna la diferenza
    I got the remedy

  3. #3
    mi ritorna la differenza in giorni, non in mesi...

    Nel caso il mese sia di 30 o 31 non è possibile fare il calcolo, perchè questa funzione conta soltanto i giorni trascorsi...

    Mi sa che dovrò fare un calcolo manuale...

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da SkOrPiOn`87
    mi ritorna la differenza in giorni
    Ti ritorna la differenza, nel senso generico del termine, che è rappresentata con un oggetto attraverso il quale puoi ottenere le informazioni che vuoi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Si, però anche andando a sommare la differenza al giorno, otterei cmq il girono attuale...

    Tantovale utilizzare DateTime.Today;


    Non riesco a capire in che modo utilizzarla...

  6. #6
    Se ho ben capito per te la differenza tra il 29 settembre 2007 e il 2 ottobre 2007 è un mese e non 4 giorni.
    Se lo intendi cosi' allora il calcolo da fare e' il seguente:

    Oggi in mesi = Anno di oggi * 12 + mese di oggi.
    Altra data in mesi = Anno di altra data * 12 + mese di altra data.

    Differenza in mesi = Oggi in mesi - altra data in mesi.

    Es.
    Differenza tra sett 2007 e aprile 2008.

    Aprile2008InMesi = 2008*12 + 4; (24100)
    Sett2007InMesi = 2007*12+9; (24093)

    La differenza e' 7

    Ciao

  7. #7
    29 Settembre -> 3 Ottobre La differenza non è 1 mese


    29 settembre -> 30 ottobre la differenza è + di un mese


    29 settembre -> 29 ottobre la differenza è 1 mese


    Però con quella funzione io ottengo il numero dei giorni e basta, ed in questo modo non posso sapere se è un mese oppure no, perchè nel caso dei mesi di 30 o 31 per arrivare a fare un mese, ovvero da:

    5 ottobre a 5 novembre è 1 mese, ma passano 31 giorni


    da 5 novembre a 5 dicembre è 1 mese, però qua ne passano 30 di giorni


    Quindi avendo il numero di giorni trascorsi non sono comunque in grado di stabilire i mesi trascorsi, cercavo una funzione che lo facesse da solo, altrimenti mi arrangio alla meglio, stabilendo di quanti giorni è il determinato mese ecc... se è bisestile o no....


    Grazie

  8. #8
    Continua ad andare bene il mio metodo aggiungendo alla fine il controllo che
    se il giorno della data di arrivo è minore di quello della data di partenza allora devi sottrarre 1.

    Ma tra 31/01 e 28/02 quindi e' meno di un mese e 31/01 e 01/03 piu' di 2 ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.