begin process at 2012 02 13 19:26:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

datePart bug?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

datePart bug?

mercredi 16 janvier 2008 à 12:02:15 | datePart bug?

Jomba

bonjour,
j'utilise dans un de mes programmes la fonction datepart :

Dim

test AsInteger
test = DatePart(DateInterval.WeekOfYear, CDate("31/12/2007"), Microsoft.VisualBasic.FirstDayOfWeek.Monday, Microsoft.VisualBasic.FirstWeekOfYear.FirstFourDays)

Dans le test que je vous ai copié ci-dessus, j'ai la date du 31 dé&cembre 2007 dont je cherche à récupérer le numéro de semaine : elle me ressort semaine 53 au lieu de 1 (1ère semaine de 2008).
Pourtant, j'ai bien spécifé "
FirstFourDays".
Est-ce un bug de la fonction ou un paramétrage raté ou ...?
Ca fait 2 ans que j'utilise cette fonction sans problème à part ça...

Merci d'avance,
Jomba
mercredi 16 janvier 2008 à 12:17:14 | Re : datePart bug?

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour

VB doit (je pense) remettre son compteur à "0" lors du changement d'année, il est facile d'éviter d'avoir la semaine 53 :
test = DatePart(DateInterval.WeekOfYear, CDate("31/12/2007"), Microsoft.VisualBasic.FirstDayOfWeek.Monday, Microsoft.VisualBasic.FirstWeekOfYear.FirstFourDays) mod 53

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
mercredi 16 janvier 2008 à 12:17:59 | Re : datePart bug?

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour

REMARQUE,
if test=0 then test=1
(53 mod 53=0)

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
mercredi 16 janvier 2008 à 12:31:40 | Re : datePart bug?

Jomba

merci pour ta solution mais je ne pense pas qu'il remette le compteur à 0 car en mettant la date au 1 er janvier 2008, je récupère bien la semaine 1
mercredi 16 janvier 2008 à 12:46:30 | Re : datePart bug?

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour

Oui, mais en mettant "Mod 53" à la fin de ta ligne, le 31/12/2007 fera parti de la semaine 0 ...

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
mercredi 16 janvier 2008 à 13:57:25 | Re : datePart bug?

JMO

Membre Club


 Bonjour à tous,

Effectivement le DatePart renvoie semaine 53.

Alternative à adapter pour .Net :

MsgBox JoursDeLaSemaine1(2008)

Public Function JoursDeLaSemaine1(annee)
    Dim d, i, MaSemaine
    d = DateSerial(annee, 1, 1)
    ' calcul du premier jour de la première semaine de l'année
    d = DateAdd("d", 1 - Weekday(d, vbMonday), d)

    MaSemaine = "Jours de la semaine 1" &vbcr
    For  i =0 To 6
         MaSemaine = MaSemaine &vbCr& DateAdd("d", i, d)
    Next
    JoursDeLaSemaine1 = MaSemaine
End Function



jean-marc
mercredi 16 janvier 2008 à 14:14:55 | Re : datePart bug?

Renfield

Administrateur CodeS-SourceS
les règles sont exposées ici : http://fr.wikipedia.org/wiki/ISO_8601#Num.C3.A9ro_de_semaine dans ce Snippet: http://www.codyx.org/snippet_recuperer-numero-semaine_61.aspx#401 j'ai codé en VB6 l'algo exposé sur Wiki mais des codes en .Net sont dispo sur cette page de Codyx.
mercredi 16 janvier 2008 à 14:16:06 | Re : datePart bug?

Jomba

Réponse acceptée !
je vous remercie de vos réponses mais ce que je voulais savoir, c'était surtout si c'était moi ou vb.net2005 qui faisait une erreur. Et apparement, c'est vb.
J'ai résolu mon problème en  positionnant ma date sur le jeudi, ainsi, ça marche à tous les coups, quelle que soit la date donnée.

DatePart(DateInterval.WeekOfYear, DateAdd(DateInterval.Day, 4 - DatePart(DateInterval.Weekday,CDate("31/12/2007") ),CDate("31/12/2007") ),Microsoft.VisualBasic.FirstDayOfWeek.Monday, FirstWeekOfYear.FirstFourDays)

mercredi 16 janvier 2008 à 14:24:03 | Re : datePart bug?

Jomba

j'oubliais, je ne prend pas le mod 53 comme solution car il peut arriver que la semaine 53 existe (quand le 31 décembre tombe un jeudi)

Merci à vous tous et à une prochaine


Cette discussion est classée dans : fonction, bug, utilise, semaine, datepart


Répondre à ce message

Sujets en rapport avec ce message

Bug avec fonction Input de VBA [ par PVigier ] J'ai deux applis (Access et word) qui utilisent une fonction Input à partir du code VBA. Sur mon PC cette fonction n'est pas trouvée à l'exécution. Mo Fonction replace en VBA, problème [ par Spylover ] Bonjour,j'utilise chez moi Office XP et j'utilise la fonction replace(,,,) qui fonctionne très bien, à titre pro, j'essaie d'utiliser cette fonction e Problème fonction replace(,,,) en VBA [ par Spylover ] Bonjour,j'utilise chez moi Office XP et j'utilise la fonction replace(,,,) qui fonctionne très bien, à titre pro, j'essaie d'utiliser cette fonction e les jours ouvres sur excel [ par bigsam ] Bonjour a tous. je voudrais savoir si il y a moyen de modifier la fonction nb jours ouvres sur excel ?? en effet celle ci fonctionne parfaitement pou Bug TAPI dans svchost [ par white_mage ] Bonjour à tous?Je développe un soft utilisant TAPI 3. Nos téléphones au boulot, sont des 3COM et on utilise le driver NBXTSP. Avec TAPI 3.0, Il existe Savoir si un objet est Nothing [ par Talere ] Bonjour,J'utilise la fonction Range.find d'Excel et lorsque qu'aucune cellule est trouvée, la fonction renvoie "Nothing". Je cherche à savoir si l'obj La Fonction Pour Avoir La Journée De la Semaine. [ par pmaxime ] Je veux Juste avoir Lundi , Mardi , Mercredi ... Vendredi .....Merci à l'avancepmaxime 8D utilise une fonction c++ [ par amiro ] j'ai une bibliothéque codé en c.je veux que lorsque je fais un clic sur un bouton dans une application vb je serais capable d'envoyer les résultas de Quel DLL utilise la fonction SEND [ par maxwells ] Bonjour je voudrais savoir quel DLL ou quel OCX utilise la fonction send de VB pour en voyer des mailMerci à tousM@xwells<FONT color=#0 utilise une fonction c++ [ par amiro ] j'utilise cette fonction dans une DLL pour l'appeler en vbcette fonction fonctionne correctement en vc.void liste_adap(char * device_name) {       /*


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,218 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales