J'ai besoin d'écrire une fonction qui reçoit deux arguments dire que la fonction est E.g. I Vainly essayé https://access-programers.co. UK / Forums / Showthread.php? T = 113589 P> startdate code> et
enddate code> où il renvoie la différence entre ces deux dates. P>
MonthfractionDiff (startDate, enddate) code> p>
MonthfractionDiff (15/01/2016,15 / 02/2016) code> retournera
((31-15) / 31) + (15/29) = 1.0333704116 code> p>
MonthfractionDiff (15/11/2018,15 / 02/2019) code> retournera
((30-15) / 30) + 1 + 1 + (15/28) = 3.0357142857 CODE> P>
3 Réponses :
mis à jour strong> grâce à une autre réponse weebee
Merci! Mais il ne calculait pas non plus la fraction correcte du mois par exemple. HOWMANMONNTHS (03 décembre 2018, 17 juin 2019) Retours 6.5032 CODE> Qui serait
29/31 + 1 + 1 + 1 + 1 + 1 + 17/30 = 6.50215053762 ou 6.5022 CODE>
@Sislam qui est une approche différente de ce que vous avez dit précédemment. Dans votre premier exemple avec novembre, vous avez fait la date de soustraire des jours au total divisé par des jours totaux, donc: (30-15) /30=0.5 code>. Mais avec votre exemple de 3 décembre, vous montrez 29/31 qui est une approche différente. Basé sur votre exemple précédent, ce serait lequel équivaut à 28, au lieu de vous
31-2 code> pour obtenir 29 sur 31. Cela expliquerait votre différence. Si vous souhaitez inclure la date de début (comme vous l'avez fait pour vos exemples de décembre), il est facile de changer.
MonthfractionDiff (15/01/2016,15 / 02/2016) retournera ((31-15) / 31) + (15/29) = 1.0333704116 code> ici
(31-15) = (Journées totales dans ce mois) Portion de la date de début code>
@Sislam Désolé, je ne comprends pas. Bonne chance.
Désolé si vous ne comprenez pas. MonthfractionDiff (15/01/2016,15 / 02/2016) Code> retournera
((31-15) / 31) + (15/29) = 1.0333704116 code> ici
(31-15) = (jours total en janvier mois) - (partie de jour de la date de début, soit 15) code>
Oui, je vois que ... 15 janvier au 15 février dans une année bissextile est égal à 1.0337 (31-15) = 16/31 + 15/9.Quez ce que ma formule revient, et c'est ce que vous avez répertorié comme le résultat attendu de votre exemple . Ce n'est pas la même approche dans l'exemple de votre 3 décembre qui est = (31-3) = qui montre vingt-neuf au lieu de 28 divisé par 31.
J'irais avec datrodiff ().
datediff("d", "01/01/2019", date())/30.5
J'aime mieux votre approche globale (c'est-à-dire de la prétendance du mois), mais l'OP indique clairement qu'il / elle cherche chaque mois à convertir en pourcentage de temps relatif du mois. Votre formule ne correspond pas tout à fait car elle retournerait 1.0163 pour l'exemple Janvier / FEB au lieu de 1.0337.
Oui, ma formule n'a pas votre niveau de précision, c'est une approche mathématique.
J'ai volé une partie de votre réponse (et j'ai payé pour cela avec un obscurci!). Le datrodiff code> est une meilleure approche que mon idée de boucle.
Merci, @pgcoderider!
Comme le nombre de jours de jour varie, vous devez compter en jours pour obtenir le plus près possible, comme il n'y a jamais (sauf en un mois ou en juillet / août ou en décembre / janvier) sera une valeur exacte:
? TotalMonths(#2016/01/15#, #2016/02/15#) 1.03 ? TotalMonths(#2018/11/15#, #2019/02/15#) 3.03
On dirait tout à fait l'effort d'obtenir jours-month code>. Voir mon approche ci-dessous:
Journée (datestérien (année (startdate), mois (startdate) + 1, 1) - 1) code>
@PGCODERIDER: Il provient d'une bibliothèque structurée.
Postez le code actuel que vous avez essayé et indiquez quelle partie de cela ne fonctionne pas correctement. "Vainly Essayy" pourrait être une faute de frappe dans ce que vous avez repéré, il pourrait être que vous avez manqué une ligne en copie / pâte, il est difficile de dire ...
@Freeman j'ai essayé au-dessus du code (tel que posté par Pstraton), il fonctionne lorsque la date de début et de fin est la même année, mais cela ne va pas lorsque les deux dates sont différentes. StartDate en 2018 et seddate en 2019.
Regardez le fil que vous mentionnez, faites défiler et essayez le code de l'utilisateur pstraton i>.
Merci pour votre réponse. Mise à jour mon commentaire.Does ça marche vraiment?