Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018
-
3 mai 2017 à 16:04
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018
-
4 mai 2017 à 10:02
Bonjour,
je veux créer une application pour faire des rapports (dans un fichier Word), j'ai presque terminé l'application il me manque juste une chose
comme l'indique le titre j'ai besoin de connaître le samedi (le premier jour de travail dans la semaine) et le jeudi (le dernier jour de travail dans la semaine) à partir d'une date (la date est obtenue à partir d'un DateTimePicker1)
par exemple :
Aujourd'hui, Lundi 03/05/2017, les deux dates récupéré seront :
Le Samedi 29/04/2017 et Le Jeudi 04/05/2017
Le Samedi 06/05/2017, les deux dates récupéré seront :
Le Samedi 06/05/2017 et Le Jeudi 11/05/2017
j'ai bien trouvé beaucoup de choses qui traite des sujets similaires il commence tous par trouver le numéro de la semaine, En utilisant par exemple le code suivant :
Public Function NumSemaine(ByVal dat As Date) As Integer If IsDate(dat) Then Dim semaine As Integer Dim semain As Integer semain = Weekday(dat) If semain = 2 Then dat = dat.AddDays(6) End If If semain = 3 Then dat = dat.AddDays(5) End If If semain = 4 Then dat = dat.AddDays(4) End If If semain = 5 Then dat = dat.AddDays(3) End If If semain = 6 Then dat = dat.AddDays(2) End If If semain = 7 Then dat = dat.AddDays(1) End If semaine = DatePart("ww", dat, vbMonday) Return semaine End If Return Nothing End Function
mais les étapes qui suivre après ne correspond pas à ce que je veux
merci d'avance pour votre aide et vos conseils concernant ce sujet
Whismeril
Messages postés18417Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 5 juin 2023624 3 mai 2017 à 16:19
Bonjour
Aujourd'hui, Lundi 03/05/2017
heu on est mercredi, mais on était bien le 29 et demain sera bien le 4.
Pour ton problème, tu n'as pas besoin du numéro de semaine, mais du numéro de jour dans la semaine.
Dim laDate As DateTime = DateTime.Now
Dim numero As Integer = DirectCast(laDate.DayOfWeek, Integer) '0 pour dimanche, 1 pour lundi ect....
Dim samedi As DateTime
Select Case numero
Case 6
samedi = laDate.Date '.Date car sinon on va avoir les minutes et les secondes
Case 0 To 5 ' dimanche à vendredi
samedi = laDate.Date.AddDays(-1 - numero)
Case Else
'y a une erreur
End Select
Dim jeudi As DateTime = samedi.AddDays(5)
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 Modifié le 3 mai 2017 à 16:39
bonjour Karin.code
Tues sûre de ce que tu as écrit:
Aujourd'hui, Lundi 03/05/2017, les deux dates récupérées seront :
Le Samedi 29/04/2017 et Le Jeudi 04/05/2017
Le 29/04/2017 est un Jeudi et 04/05:2017 est un Mardi à mon avis
Ce n'est pas plutôt :
Aujourd'hui, Lundi 03/05/2017, les deux dates récupérées seront :
Le Samedi 01/05/2017 et Le Jeudi 06/05/2017
La première chose à faire est de trouver quel est le jour de la semaine qui représente ta date en paramètre en tenant compte du premier jour de la semaine que tu désires
Ensuite selon le résultat retourné ( par exemple lundi est retourné : on déduit le samedi avant en ôtant 2 jours et le jeudi après en ajoutant 3 jours
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182 3 mai 2017 à 22:59
Bonsoir vb95,
ton code fait exactement ce que je veux, de plus il est très bien commenter, ça m'a beaucoup aidé à comprendre le fonctionnement du code
c'est vrai j'ai fait beaucoup de fautes un j'étais un petit peu fatigué du travail désolé
heu on est mercredi, mais on était bien le 29 et demain sera bien le 4.
c'est Mercredi 03/05/2017 et non Lundi 03/05/2017
Aujourd'hui, Lundi 03/05/2017, les deux dates récupérées seront :
Le Samedi 29/04/2017 et Le Jeudi 04/05/2017
Le 29/04/2017 est un Jeudi et 04/05:2017 est un Mardi à mon avis
et aussi ce n'est pas Le Samedi 29/04/2017 mais le Samedi 28/04/2017 (ce n'est pas avril mes mai)
Le 04/05/2017 c'est demain (c'est un jeudi et pas un mardi d'après le calendrier lol)
comme toujours merci infiniment pour ton aide ☺
bonne nuit
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165
>
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 2018 3 mai 2017 à 23:51
Excuse-moi
Pour les dates j'ai pris tes données à la lettre sans vérifier leur véracité
Bonne nuit
Karin.code
Messages postés183Date d'inscriptionvendredi 2 septembre 2016StatutMembreDernière intervention16 janvier 20182
>
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023 4 mai 2017 à 10:02
tu n'as pas besoin de t'excuser c'est moi qui a fait une erreur au début