|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
Fonction début de semaine |
Iniciado por dominique.piret, 26,nov. 2004 15:30 - 6 respuestas |
| |
| | | |
|
| |
Publicado el 26,noviembre 2004 - 15:30 |
Bonjour, Existe il une fonction qui donne directement la date de début (ou de fin) de semaine (ou de mois ou d'année) en fonction d'une date donnée ? C'est possible en calculant avec le numéro du jour mais ce serait + facile s'il y avait une fonction toute faite Merci à tous Dominique |
| |
| |
| | | |
|
| | |
| |
Publicado el 27,noviembre 2004 - 00:29 |
Bonjour,
de mémoire, je pense que dans la dernière LST 57 ou 58, il y a un composant qui te fait tout ça. (Premier jour de la semaine, du mois...)
Cdlt,
Stéphane
"DomiPi" <dominique.piret@tiscali.be> a écrit dans le message de news: 41a72630$1@news.pcsoft.fr...
Bonjour, Existe il une fonction qui donne directement la date de début (ou de fin)
de semaine (ou de mois ou d'année) en fonction d'une date donnée ? > C'est possible en calculant avec le numéro du jour mais ce serait + facile s'il y avait une fonction toute faite
Merci à tous Dominique
|
| |
| |
| | | |
|
| | |
| |
Publicado el 27,noviembre 2004 - 14:48 |
"DomiPi" <dominique.piret@tiscali.be> a écrit dans le message de news:41a72630$1@news.pcsoft.fr...
Bonjour, Existe il une fonction qui donne directement la date de début (ou de fin)
de semaine (ou de mois ou d'année) en fonction d'une date donnée ? > C'est possible en calculant avec le numéro du jour mais ce serait + facile s'il y avait une fonction toute faite
Merci à tous Dominique ================================== Voici un exemple simple pour trouver la date de début et de fin de semaine d'une date
Lundi,Dim,MaDate sont des Dates="20041201" MaDate..Jour-=DateVersJour(MaDate)-1; Lundi=MaDate MaDate..Jour+=6; Dim=MaDate Trace(Lundi,Dim) // pour tester les résultats
Réal Phil |
| |
| |
| | | |
|
| | |
| |
Publicado el 27,noviembre 2004 - 14:51 |
> Existe il une fonction qui donne directement la date de début (ou de fin) de semaine (ou de mois ou d'année) en fonction d'une date donnée ?
C'est possible en calculant avec le numéro du jour mais ce serait + facile s'il y avait une fonction toute faite
Bonjour,
Il n'y a pas de fonction toute faite, mais vous pouvez très bien en créer une que vous réemploirez ensuite dans toutes vos applications en adaptant le code ci dessous : // Description des paramètres d'entrée/sortie de 'pPremSemaine' : // Syntaxe : //pPremSemaine () // // Paramètres : // Aucun // Valeur de retour : // Aucune // Notes : // Créez dans une fenêtre un champ de saisie ayant les caractéristiques suivantes : // Nom : SaisDate // Libellé : Entrez une date : // Type date, masque de saisie <<JJ/MM/AAAA>> valeur retournée <<AAAAMMJJ>> // Dans le code de sortie du champ vous saisissez l'appel à la procédure : // pPremSemaine() // Dans les procédures locales dela fenêtre vous créez la procédure pPremSemaine() avec le code ci dessous :
PROCEDURE pPremSemaine()
dDate est une Date dDateLundi est une Date eJour est un entier dDatePremier, dDateDernier sont des Dates dAnneePremier, dAnneeDernier sont des Dates
dDate = SaisDate // SaisDate est le champ de saisie date dDateLundi = dDate eJour = EntierVersJour(dDate) dDateLundi..Jour = dDateLundi..Jour - (eJour - 1) Info("Le premier jour de la semaine du " + DateVersJourEnLettre(dDate) + " " + dDate..Jour + " " + DateVersMoisEnLettre(dDate)... + " " + dDate..Année + RC + "Est le " + DateVersJourEnLettre(dDateLundi) + " " + dDateLundi..Jour... + " " + DateVersMoisEnLettre(dDateLundi) + " " + dDateLundi..Année)
dDateDernier = dDate dDateDernier..Jour = 31 // Donne le dernier jour du mois dDatePremier= dDate dDatePremier..Jour = 1 // Donne le premier jour du mois Info("Le premier jour du mois de " + DateVersMoisEnLettre(dDate) + " " + dDate..Année + " tombe un "... + DateVersJourEnLettre(dDatePremier)... + " et le dernier jour est le " + DateVersJourEnLettre(dDateDernier) + " " + dDateDernier..Jour)
dAnneePremier = dDate dAnneeDernier = dDate dAnneePremier..Mois = 1 dAnneePremier..Jour = 1 dAnneeDernier..Mois = 12 dAnneeDernier..Jour = 31
Info("Le premier jour de l'année " + dDatePremier..Année + " tombe un " + DateVersJourEnLettre(dAnneePremier)... + " et le dernier jour de l'année est un " + DateVersJourEnLettre(dAnneeDernier)) // Fin de la procédure pPremSemaine
Une remarque au passage pour compléter la réponse à votre question, le premier jour de l'année et d'un mois est toujours le 1er, et le dernier jour d'une année est toujours le 31 décembre.
Sincères salutations -- Jean-Claude FLAJOULOT spetb_no_Spam@tiscali.fr (otez _no_Spam pour me contacter en privé) Sécurité Pointage & Biométrie http://www.sp-et-b.com |
| |
| |
| | | |
|
| | |
| |
Publicado el 27,noviembre 2004 - 16:28 |
Bonjour,
Il y avait un bug dans le code de mon post précédent, il faut pour un fonctionnement correct remplacer le code de la procédure pPremSemaine() par le suivant :
PROCEDURE pPremSemaine()
dDate est une Date dDateLundi est une Date dDatePremier, dDateDernier sont des Dates dAnneePremier, dAnneeDernier sont des Dates eNumeroSemaine, eAnnee sont des entiers
dDate = SaisDate // SaisDate est le champ de saisie date dDateLundi = dDate eAnnee = dDateLundi..Année eNumeroSemaine = NuméroDeSemaine(dDateLundi) dDateLundi = fFoncLundi(eNumeroSemaine, eAnnee) // On apelle la fonction fFoncLundi
Info("Le premier jour de la semaine du " + DateVersJourEnLettre(dDate) + " " + dDate..Jour + " " + DateVersMoisEnLettre(dDate)... + " " + dDate..Année + RC + "Est le " + DateVersJourEnLettre(dDateLundi) + " " + dDateLundi..Jour... + " " + DateVersMoisEnLettre(dDateLundi) + " " + dDateLundi..Année)
dDateDernier = dDate dDateDernier..Jour = 31 // Donne le dernier jour du mois dDatePremier= dDate dDatePremier..Jour = 1 // Donne le premier jour du mois Info("Le premier jour du mois de " + DateVersMoisEnLettre(dDate) + " " + dDate..Année + " tombe un "... + DateVersJourEnLettre(dDatePremier)... + " et le dernier jour est le " + DateVersJourEnLettre(dDateDernier) + " " + dDateDernier..Jour)
dAnneePremier = dDate dAnneeDernier = dDate dAnneePremier..Mois = 1 dAnneePremier..Jour = 1 dAnneeDernier..Mois = 12 dAnneeDernier..Jour = 31
Info("Le premier jour de l'année " + dDatePremier..Année + " tombe un " + DateVersJourEnLettre(dAnneePremier)... + " et le dernier jour de l'année est un " + DateVersJourEnLettre(dAnneeDernier)) // Fin de pPremSemaine()
et rajouter la fonction suivante :
FONCTION fFoncLundi(eNumeroSemaine, eAnnee)
cPremierJour est une chaîne = eAnnee + "0101" ePremierJour est un entier = EntierVersJour(DateVersEntier(cPremierJour)) eDebutSemaine est un entier SI ePremierJour > 4 ALORS eDebutSemaine = ((eNumeroSemaine * 7) - 6) + (7 - ePremierJour + 1) SINON eDebutSemaine = ((eNumeroSemaine * 7) - 6) - (ePremierJour - 1) FIN RENVOYER EntierVersDate(eDebutSemaine + DateVersEntier(cPremierJour) - 1) // Fin de fFoncLundi
Sincères salutations -- Jean-Claude FLAJOULOT spetb_no_Spam@tiscali.fr (otez _no_Spam pour me contacter en privé) Sécurité Pointage & Biométrie http://www.sp-et-b.com |
| |
| |
| | | |
|
| | |
| |
Publicado el 27,noviembre 2004 - 23:33 |
"DomiPi" <dominique.piret@tiscali.be> a écrit dans le message de news:41a72630$1@news.pcsoft.fr...
Bonjour, Existe il une fonction qui donne directement la date de début (ou de fin)
de semaine (ou de mois ou d'année) en fonction d'une date donnée ? > C'est possible en calculant avec le numéro du jour mais ce serait + facile s'il y avait une fonction toute faite
Merci à tous Dominique ================================== Voici un exemple simple pour trouver la date de début et de fin de semaine d'une date
Lundi,Dim,MaDate sont des Dates="20041201" MaDate..Jour-=DateVersJour(MaDate)-1; Lundi=MaDate MaDate..Jour+=6; Dim=MaDate Trace(Lundi,Dim) // pour tester les résultats
Réal Phil |
| |
| |
| | | |
|
| | |
| |
Publicado el 29,noviembre 2004 - 10:39 |
Merci pour toutes vos réponses, C'est vrai que date début et fin d'année, c'est simple ! Mais j'ai l'habitude du C et là les dates sont un long en secondes c'est donc mois évident Bonne smaine à tous |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|