none
Intervallo datetimepicker RRS feed

  • Domanda

  • Buongiorno,

    ho la necessità di fare una ricerca tramite 2 datetimepiker.

    In particolare dovrei scrivere in un file i giorni che vanno dal datetimepicker1 al datetimepicker2.

    Se qualcuno lo sa mi può postare come si fa?

    Grazie mille e buonagiornata.

    Daniele

    giovedì 23 luglio 2015 11:45

Risposte

  • Una volta che sai il numero di giorni che devi "stampare" su file, basta che fai un ciclo per il numero di giorni che ti servono, alla data iniziale aggiungi il numero di giorni del ciclo in quel momento ed hai la data

    Per ricapitolare

    Calcoli la differenza in giorni (come ti avevo indicato precedentemente) tra le due date

    Fai un ciclo da 0 al numero di giorni che ti servono

    per ogni giorno, ottieni la data che vuoi stampare semplicemente aggiungendo alla data iniziale, il numero del contatore di ciclo attuale

    Questa data la stampi come vuoi

    giovedì 23 luglio 2015 12:36
  • Il codice che mi hai dato non sono riuscito a farlo funzionare, comunque ho risolto così.

    Dim data1 As Date = dtpda.Value.ToShortDateString Dim data2 As Date = dtpa.Value.ToShortDateString Dim datastamp As Date = dtpda.Value Dim Giorni = DateDiff(DateInterval.Day, data1, data2) For i = i To Giorni Dim gg As String = Mid(data1, 1, 2) Dim mm As String = Mid(data1, 4, 2) Dim anno As String = Mid(data1, 7, 4) Dim newdatada As String = anno + mm + gg My.Computer.FileSystem.WriteAllText(temp, newdatada & vbCrLf, True) data1 = data1.AddDays(1) Application.DoEvents() Next

    Ho usato la funzione datediff per calcolare i giorni poi come mi hai detto ho fatto il ciclo e usato la funziona adddays.

    Grazie mille per il tuo aiuto!!

    Daniele

    venerdì 24 luglio 2015 08:25

Tutte le risposte

  • Non so se ho capito bene la domanda,

    hai due DateTimePicker, quindi puoi ottenerne la data di ciascuno, interrogandone la proprietà "Value"

    Devi poi vedere il numero di giorni tra queste due date, quindi puoi usare il metodo Subtract delle date per ottenere un oggetto TimeSpan

    Di questo oggetto, puoi quindi andare a leggere la proprietà Days

    In una riga, quindi

    Dim Giorni = Data2.Subtract(Data1).Days

    giovedì 23 luglio 2015 12:01
  • Scusa ho scritto male io.

    Faccio un esempio, il primo datetimepicker è 01/01/2015 ed il secondo è 03/01/2015.

    Nel file vorrei che venisse scritto

    01/01/2015

    02/01/2015

    03/01/2015

    Probabilmente sarà una cavolata ma sto girando e non trovo il codice.

    E' possibile fare tipo un ciclo? o esiste un codice adatto alla questione?
    giovedì 23 luglio 2015 12:07
  • Una volta che sai il numero di giorni che devi "stampare" su file, basta che fai un ciclo per il numero di giorni che ti servono, alla data iniziale aggiungi il numero di giorni del ciclo in quel momento ed hai la data

    Per ricapitolare

    Calcoli la differenza in giorni (come ti avevo indicato precedentemente) tra le due date

    Fai un ciclo da 0 al numero di giorni che ti servono

    per ogni giorno, ottieni la data che vuoi stampare semplicemente aggiungendo alla data iniziale, il numero del contatore di ciclo attuale

    Questa data la stampi come vuoi

    giovedì 23 luglio 2015 12:36
  • Il codice che mi hai dato non sono riuscito a farlo funzionare, comunque ho risolto così.

    Dim data1 As Date = dtpda.Value.ToShortDateString Dim data2 As Date = dtpa.Value.ToShortDateString Dim datastamp As Date = dtpda.Value Dim Giorni = DateDiff(DateInterval.Day, data1, data2) For i = i To Giorni Dim gg As String = Mid(data1, 1, 2) Dim mm As String = Mid(data1, 4, 2) Dim anno As String = Mid(data1, 7, 4) Dim newdatada As String = anno + mm + gg My.Computer.FileSystem.WriteAllText(temp, newdatada & vbCrLf, True) data1 = data1.AddDays(1) Application.DoEvents() Next

    Ho usato la funzione datediff per calcolare i giorni poi come mi hai detto ho fatto il ciclo e usato la funziona adddays.

    Grazie mille per il tuo aiuto!!

    Daniele

    venerdì 24 luglio 2015 08:25