Comment passer les week-ends en ajoutant des jours à LocalDate dans Java 8?
D'autres réponses se réfèrent ici à Joda API.
Je veux le faire à l'aide de java.time
.
Supposons que la date d'aujourd'hui 26 Nov 2015-jeudi, lorsque j'ajoute les 2 jours ouvrables,
Je veux le résultat du lundi 30 Novembre 2015.
Je suis en train de travailler sur ma propre mise en œuvre, mais ce serait génial si il existe déjà quelque chose!
EDIT:
Est-il un moyen de le faire en dehors de boucler sur?
J'étais en train de dériver une fonction comme:
Y = f(X1,X2) where
Y is actual number of days to add,
X1 is number of business days to add,
X2 is day of the week (1-Monday to 7-Sunday)
Ensuite donné X1
et X2
(dérivé de la journée de la semaine de la date), nous pouvons trouver Y
et ensuite utiliser plusDays()
méthode de LocalDate
.
Je n'ai pas été en mesure de dériver si loin, ce n'est pas cohérent. Quelqu'un peut confirmer que la boucle jusqu'à ce que le nombre souhaité de journées de travail sont ajoutés est le seul moyen?
source d'informationauteur Anmol Gupta
Vous devez vous connecter pour publier un commentaire.
La méthode suivante ajoute jours un par un, ignorant les week-ends, pour les valeurs positives de
workdays
:Après certains de bidouiller, je suis venu avec un algorithme de calculer le nombre de journées de travail à ajouter ou à soustraire.
Exemple D'Utilisation:
Exemple De Sortie:
Ici est une version qui prend en charge à la fois positive et négative du nombre de jours et expose l'opération comme un
TemporalAdjuster
. Qui permet d'écrire:Code:
La détermination de jours ouvrables est fondamentalement une question de boucler sur les dates, vérifier si chacun d'eux est un week-end ou de vacances.
La Les strates projet de OpenGamma (je suis un committer) a une mise en œuvre d'un calendrier des vacances. Le API couvre le cas de la recherche de la date de 2 jours ouvrables plus tard. La mise en œuvre a un bitmap optimisé la conception qui effectue mieux que de jour en jour en boucle. Il peut être d'intérêt ici.
Ce qui est une méthode de l'ajout ou la soustraction des journées de travail pour un calendrier de l'objet:
C'est une façon d'ajouter des jours à l'aide de java.les Classes de temps, certaines interfaces fonctionnelles & lambda...
Prend en charge les valeurs négatives et à partir de n'importe quel jour de la semaine!