2011-01-12 3 views
0

Dire que l'utilisateur spécifie ces deux dates ....
Date de début: 2010-12-05
Date de fin: 2011-01-15Calcul entre les dates basées sur deux dates

Si je sélectionne Décembre 2010 Je devrais obtenir le folllowing
startdate = 2010-12-05
enddate = 2010-12-31

Select Janvier 2011 puis
startdate = 2011-01-01
enddate = 2011-01-15

Devrais-je soustraire des dates? Comment puis-je obtenir le début et la fin
pour le mois/année en cours en fonction de la date de début et de fin. Je codage dans vb.net

+0

Vous devez être plus précis. Vous ne posez pas réellement une question qui est responsable sans faire un certain nombre de grandes suppositions ... – Darbio

+0

que voulez-vous si vous sélectionnez FEB? –

+0

Quelle règle dicte la date de début/fin? IOW, comment pourrions-nous savoir que la date de début est '5 Dec' pour le premier exemple, et la date de fin est' 15 Jan' pour le second exemple? Ceux-ci sont tous deux purement arbitraires à moins que nous ayons une règle à suivre. – slugster

Répondre

1

Si mon télépathie fonctionne encore, il pourrait être quelque chose comme:

Dim startDate As Date = DateTimePicker1.Value 
Dim endDate As Date = DateTimePicker2.Value 
Dim selectedDate As Date = New DateTime(DateTimePicker3.Value.Year, DateTimePicker3.Value.Month, 1) 

If selectedDate >= startDate AndAlso selectedDate <= endDate Then 
    Dim resultStartDate = New DateTime(Math.Max(startDate.Ticks, selectedDate.Ticks)) 
    Dim resultEndDate = New DateTime(Math.Min(endDate.Ticks, selectedDate.AddMonths(1).AddDays(-1).Ticks)) 
Else 
    MsgBox("Outside of range") 
End If