Мне было трудно решить это, возможно, кто-то может помочь или предоставить предложения. Так вот проблема. У меня есть месяц, день и год, хранящиеся как int. Я хочу иметь возможность добавлять фиксированное количество дней к дате и получать новую дату. Как мне это сделать?C++ Date Algorithm
ответ
Предположим, что вы делаете это для обучения (есть много библиотек дат там) ... какая у вас конкретная проблема? Алгоритм не очень сложный на самом деле и звучит как:
- добавить количество дней в
day
поле даты - , если число дней в настоящее время больше, чем максимально допустимый (например, ваша дата как
april 134, 2014
), затем уменьшите количество дней с количеством дней месяца и увеличьте число месяца: например апреля в течение 30 дней, поэтому дата становитсяmay 104 2014
- повторите шаг 2, пока количество дней не в порядке в течение месяца (
june 73
,july 43
,august 12
)
Хитрость в том, что
- в число дней февраля зависит от года со странным правилом (это 29, если
year%4==0 && (year%100!=0 || year%400==0)
, 28 в противном случае). - когда увеличивающиеся месяц вы можете получить в декабре прошлого года, в этом случае вернуться к январю, но увеличиваем год
Это не самый быстрый подход (требует, чтобы петля за несколько месяцев), но это не трудно воплощать в жизнь.
Да, спасибо, это то, о чем я тоже думал. Я работал с time.h и не могу найти или использовать какие-либо функции, которые могли бы это сделать. Поэтому я думал, что так должно быть. Я попытаюсь посмотреть, смогу ли я заставить это работать. –
Если вы используете '
Что, вы можете это сделать !? Это удивительно! :) Я только что закончил разработку вложенной логики, чтобы добавить дни, чтобы получить новую дату, как вы предложили, и она работает. Я попытаюсь сделать это так. Любые рекомендации на C++/C? –
Использование подталкивание date_time:
date d1(2014, 9, 25);
date_duration dd(10);
date d2 = d1 + dd;
Это вычисляет дату 10 дней после того, как 25 сентября 2014 года я не думаю, что это становится лучше, чем это.
- 1. C# XML Diffing algorithm
- 2. C# tree/collection algorithm
- 3. C - Simplifiy Permutation Algorithm
- 4. C# Algorithm 'out'
- 5. c algorithm - question
- 6. speed verlet algorithm C++
- 7. Array Ascending algorithm C++
- 8. Rijndal Algorithm using C#
- 9. Комплекс C# Linq Algorithm
- 10. C++ Quicksort Algorithm
- 11. C++ Array «Cut» Algorithm
- 12. C++ Radix sort algorithm
- 13. C# Valid date date
- 14. C++ Color Replacement & Threshold Algorithm
- 15. C++ <algorithm> перестановка
- 16. A * star algorithm help C++
- 17. C# Diff Algorithm for Text
- 18. Word Count Algorithm in C#
- 19. Basic C Program, Babylonian Algorithm
- 20. C++ QuickSort Algorithm продолжает сбой
- 21. Lecture collision boolean algorithm algorithm
- 22. Bully Algorithm
- 23. Объединение делегатов в C# (Sum-Product Algorithm)
- 24. C Max Numbers In Array Algorithm
- 25. Infix to Postfix Algorithm in C
- 26. C++ <algorithm> объяснение реализации
- 27. Array of Structs Doubling Algorithm C++
- 28. C# Perceptron Algorithm (Чтение в файле)
- 29. Проверка победителя в подключении 4 C++ Algorithm
- 30. C# GDI Edge Whitespace Detection Algorithm
пожалуйста добавьте MCVE ТТП: //stackoverflow.com/help/mcve – Chantola
Pls читать на библиотеки даты в Чет СТЛ –
Начало здесь: http://en.cppreference.com/w/cpp/chrono/ c и здесь: http://en.cppreference.com/w/cpp/chrono –