Я хочу рассчитать месяцы и дни между двумя датами без значения года. Он также должен быть включен с начальными и конечными днями. Благодарю.Рассчитать количество месяцев и дней не год Значение
ответ
Полно испытано
В C# если вы хотите настоящие месяцы и дни, вы должны сделать какой-то процесс:
DateTime dt1 = DateTime.Parse("2011-01-01");
DateTime dt2 = DateTime.Parse("2014-01-01");
// because of calculate from date1 at time 00:00 to date2 at time 00:00 we must add 1 day to date2
dt2 = dt2.AddDays(1);
int nMonths = 0;
while (dt1.AddMonths(1) <= dt2)
{
dt1 = dt1.AddMonths(1);
nMonths++;
}
int nDays = dt2.Subtract(dt1).Days;
return String.Format("{0}m{1}d", nMonths, nDays);
В VB.net если вы хотите реальные месяцев и дней, вы должны сделать какой-либо процесс:
' http://www.developerfusion.com/tools/convert/csharp-to-vb/
' http://codeconverter.sharpdevelop.net/SnippetConverter.aspx
Dim dt1 As DateTime = DateTime.Parse("2011-01-01")
Dim dt2 As DateTime = DateTime.Parse("2014-01-01")
' because of calculate from date1 at time 00:00 to date2 at time 00:00 we must add 1 day to date2
dt2 = dt2.AddDays(1)
Dim nMonths As Integer = 0
While dt1.AddMonths(1) <= dt2
dt1 = dt1.AddMonths(1)
nMonths += 1
End While
Dim nDays As Integer = dt2.Subtract(dt1).Days
Return String.Format("{0}m{1}d", nMonths, nDays)
В MsSQL если вы хотите настоящие месяцы и дни, вы должны сделать какой-то процесс:
DECLARE @dt1 DATETIME
DECLARE @dt2 DATETIME
DECLARE @nDays INT
DECLARE @nMonths INT
SET @dt1 = '2011/01/01'
SET @dt2 = '2014/01/01'
-- because of calculate from date1 at time 00:00 to date2 at time 00:00 we must add 1 day to date2
SET dt2 = DATEADD(mm, 1, @dt1)
WHILE (DATEADD(mm, 1, @dt1) <= @dt2)
BEGIN
SET @dt1 = DATEADD(mm, 1, @dt1)
SET @nMonths = ISNULL(@nMonths, 0) + 1
END
SET @nDays = DATEDIFF(dd, @dt1, @dt2)
PRINT CAST(@nMonths AS VARCHAR) + 'm' + CAST(@nDays AS VARCHAR) + 'd'
-- you can create a sql function to get two date and return datediff as same as '5m8d'.
Я надеюсь быть полезным.
Можете ли вы помочь мне в преобразовании кода в vb.net .. Спасибо – ZahidKakar
Это очень просто: http://www.developerfusion.com/tools/convert/csharp-to-vb/ – Zolfaghari
Я использовал ваш самый код выше из C# в Vb, как показано ниже: в то время как (StDate.AddMonths (1) <= EndDate) StDate = StDate.AddMonths (1) ArrearMonths + 1 = Конец Хотя ArrearDays = EndDate.Subtract (StDate) .Days lblAmountWords .Text = String.Format ("{0} Months, {1} Days", ArrearMonths, ArrearDays). Это дает мне эксклюзив последнего дня, который не является моим требованием, я хочу рассчитать как 17/05/2011 до 30/06/2011, он должен быть возвращен 01 Месяца 15 дней, а на 01/07/2005 по 30/06/2006 он должен вернуть 12 месяцев и 0 дней. Еще раз спасибо. – ZahidKakar
Это зависит от того, как вы хотите рассчитать дни в начале и начале. Вы хотите, чтобы дни в начале и в конце были частью числа дней или должны быть завернуты в число месяцев? Например, если я нахожусь в неделю в месяц в начале месяца, и через неделю я заканчиваю в конце месяца, у меня может быть 20 дней с начала месяца и 20 дней с конца месяца, так что бы вы хотели подсчитать из 14 месяцев и 40 дней, или вы предпочитаете 15 месяцев и 10 дней?
Если вы предпочли бы, чтобы второе решение просто подсчитывало количество дней между датой начала и окончания, разделите их на среднее число дней в месяце и объявите остаток в качестве дневного счета.
Код ниже - воздушный код (не проверен). Это немного грязно, но это делает работу.
int Days = DateDiff(day, StartDate, EndDate)
int Months = Math.Floor(Days/(365.25/12))
Days = Days - (Months * (365.25/12))
Если вы предпочитаете первый метод, вы просто извлечь количество дней из подсчета, то подсчитать количество месяцев, оставшихся и добавить количество дней вы первоначально извлеченные на счет после этого.
Как я уже сказал, это зависит от того, что вы хотите.
Craig, DateDiff вычисляет День, исключая День начала и окончания.Я использовал его для StartDate = 01/07/2005 и EndDate = 30/06/2006, но результат - 11 месяцев 364 дня, что не является моим требованием. Мои требования в приведенном выше случае: «12 месяцев 0 дней». Я работаю над системой учета, поэтому имеет значение только один день. Пожалуйста, помогите мне, если позволите. – ZahidKakar
Это правильно. Если вы только вводите даты, система установит время в полночь (00:00), поэтому вы будете закрывать только с 01/07/2005 00:00 до 30/06/2006 00:00. Если вы хотите вводить только даты, но хотите, чтобы система подсчитала, кто из последних дней вам нужно добавить один день (чтобы вы смотрели 01/07/2006) или добавили один день и удалили одну секунду. Вот как вы это сделаете: 'int Days = DateDiff (день, StartDate, DateAdd (минута, DateAdd (день, EndDate, 1), -1))' [Aircode]. –
- 1. Количество лет, месяцев и дней
- 2. конвертировать количество дней в лет, месяцев, дней
- 3. Конвертировать количество дней в лет, месяцев, дней
- 4. Рассчитать количество дней в месяце
- 5. Javascript: рассчитать количество дней в месяце за данный год
- 6. Рассчитать оставшееся количество дней
- 7. , как получить количество месяцев и больше дней
- 8. Рассчитать количество месяцев с момента дня
- 9. Как рассчитать количество месяцев, если у меня есть дата начала и истекшее количество дней
- 10. QUIZ: Рассчитать количество комбинаций дней
- 11. Tableau: Как рассчитать количество дней
- 12. Рассчитать количество лет и дней в
- 13. Рассчитать количество дней в JavaScript и xml
- 14. Как рассчитать общее количество дней между двумя датами в заводных
- 15. Рассчитать количество дней на основе критериев
- 16. Рассчитать общее количество дней в году
- 17. рассчитать продолжительность в годах месяцев и дней для каждой строки
- 18. Как рассчитать количество дней с начала года
- 19. Как рассчитать количество месяцев между двумя DateTimes?
- 20. рождения возраста, но и на количество месяцев и дней
- 21. Как рассчитать количество дней в redshift
- 22. как рассчитать год и это значение?
- 23. PDF Javascript Рассчитать количество дней между датами
- 24. Как рассчитать количество месяцев между двумя датами в C#
- 25. Найдите количество месяцев и дней между диапазоном дат
- 26. VBA Рассчитать количество дней в выходные
- 27. Как рассчитать количество дней между двумя датами
- 28. рассчитать количество дней в подборщике диапазона javascript
- 29. Как рассчитать количество дней в периоде?
- 30. Рассчитать количество дней между событиями - Android
любые образцы кода, которые вы пробовали? – ssilas777