Je dois calculer un StartDate et une EndDate d'un trimestre en cours et du trimestre précédent dans vb.net.Calculer la date de début et la date de fin pour ce trimestre et le dernier trimestre
Répondre
Pardonnez mon manque d'une réponse spécifique à VB.net, mais étant donné une sorte générique d'objet date avec diverses fonctions dans une pseudo-langue (avec le jour de base zéro et index mois) ...
//round the current month number down to a multiple of 3
ThisQuarterStart = DateFromYearMonthDay(Today.Year,Today.Month-(Today.Month%3),0);
//round the current month number up to a multiple of 3, then subtract 1 day
ThisQuarterEnd = DateFromYearMonthDay((Today.Month<9)?(Today.Year):(Today.Year+1),(Today.Month-(Today.Month%3)+3)%12,0) - 1;
//same as above, but minus 3 months
LastQuarterStart = DateFromYearMonthDay((Today.Month<3)?(Today.Year-1):(Today.Year),(Today.Month-(Today.Month%3)+9)%12,0)
LastQuarterEnd = ThisQuarterStart - 1;
Modifier converti ci-dessus pseudocode à travailler VB.Net:/Stefan
Dim ThisQuarterStart As Date = New Date(Today.Year, Today.Month - (Today.Month Mod 3) + 1, 1)
Dim ThisQuarterEnd As Date = New Date(CInt(IIf(Today.Month < 9, Today.Year, Today.Year + 1)), (Today.Month - (Today.Month Mod 3) + 3 Mod 12) + 1, 1).AddDays(-1)
Dim LastQuarterStart As Date = New Date(CInt(IIf(Today.Month < 3, Today.Year - 1, Today.Year)), (Today.Month - (Today.Month Mod 3) + 9 Mod 12) + 1, 1)
Dim LastQuarterEnd As Date = ThisQuarterStart.AddDays(-1)
Je sais que vous avez spécifié VB.Net
, mais je suis beaucoup plus à l'aise dans l'écriture de code uncomplied C#
. Je suis sûr que quelqu'un peut traduire si nécessaire.
public static DateTime QuarterEnd() {
DateTime now = DateTime.Now;
int year = now.Year;
DateTime[] endOfQuarters = new DateTime[] {
new DateTime(year, 3, 31),
new DateTime(year, 6, 30),
new DateTime(year, 9, 30),
new DateTime(year, 12, 31)
};
return endOfQuarters.Where(d => d.Subtract(now).Days >= 0).First();
}
Je préfère cette solution sur les autres qui impliquent l'arithmétique modulo et conditionals laids en ce qu'il est modifié assez facilement pour gérer les définitions trimestre non standard. La définition d'une méthode QuarterStart
est traitée de manière similaire, et est laissée comme un exercice pour le cher lecteur. Vous pouvez également modifier cette méthode pour renvoyer un struct
contenant les dates de début et de fin souhaitées.
Modifier, a ajouté VB.Net-version ci-dessus code C#/Stefan:
Public Function QuarterEnd() As Date
Dim endOfQuarters As Date() = New Date() { _
New Date(Now.Year, 3, 31), _
New Date(Now.Year, 6, 30), _
New Date(Now.Year, 9, 30), _
New Date(Now.Year, 12, 31)}
Return endOfQuarters.Where(Function(d) d.Subtract(Now).Days >= 0).First()
End Function
Le vb.net convertion a besoin d'un changement. L'a changé en vb 6 et devrait être lu;
ThisQuarterStart = DateSerial (today.Year, today.Month - (IIf (today.Month Mod 3 = 0, 3, today.Month Mod 3)) + 1, 1)
ThisQuarterEnd = DateSerial (CInt (IIf (aujourd'hui.Month < 9, aujourd'hui.Année, aujourd'hui.Année + 1)), ((aujourd'hui.Month - (IIf (aujourd'hui.Month Mod 3 = 0, 3, aujourd'hui.Month Mod 3)) + 3) Mod 12) + 1, 1) - 1
- 1. Calculer la date de début et le nom d'un trimestre à partir d'une date donnée
- 2. Calculer le dernier jour du trimestre COURANT
- 3. Calculer la date de début et de fin de la semaine précédente
- 4. Comment obtenir un enregistrement avant la date de début et de fin
- 5. Quel est le moyen le plus rapide de ColdFusion pour obtenir le premier et le dernier jour du trimestre?
- 6. Calculer la date de début et de fin d'une semaine compte tenu du numéro de semaine et de l'année en C# (basé sur la spécification ISO)
- 7. Changer la date et le groupe par mois fiscal Fin
- 8. les cookies Rails, fixent la date de début et date d'expiration
- 9. Quelle est la bonne façon d'obtenir la date de début et de fin d'un numéro de semaine ISO dans TSQL?
- 10. Comment calculer une heure de fin en fonction de l'heure de début et de la durée?
- 11. calculer l'angle de début et de fin de la tranche de piechart
- 12. Heure de début et de fin à l'aide de jquery
- 13. différence étrange entre new Date() et la date de FileCreation
- 14. Méthodes d'extension utiles Bibliothèque C# pour l'objet Date
- 15. Liste de calendriers SharePoint: Restreindre l'entrée d'un deuxième élément avec la même date de début et de fin
- 16. Saisie de la date et de l'heure
- 17. Problème de date et de date SQL
- 18. VB.net: Comment obtenez-vous la date de l'année de début?
- 19. Date de requête et d'affichage
- 20. Date de calcul pour un jour de la semaine
- 21. Access Report - Semaine de la date de fin
- 22. Plugin jQuery Date Picker de Kevin Luck - Définir la date de fin dynamiquement
- 23. INTIME et OutTime pour la date de modification
- 24. Lier la date et l'heure aux champs d'édition de date et d'heure
- 25. Date Différence dans MySQL pour calculer l'âge
- 26. InTime et OutTime pour la date de modification?
- 27. Comment obtenez-vous les "date de début de semaine" et "date de fin de semaine" du numéro de semaine dans SQL Server?
- 28. Delphi: Détecter le début et la fin du déplacement de la fenêtre
- 29. tâche Calculer les heures de début
- 30. jQuery sélecteur pour la correspondance au début et à la fin de l'ID?
Définir "quart". – jason
trimestres d'affaires, de sorte que le premier trimestre serait Janvier/Février/Mars – Slee
D'accord, cela rend la résolution du problème assez simple; Je posterai une réponse ci-dessous. Le point de ma question est que chaque compagnie et chaque pays utilisent leur propre définition de «quart». – jason