IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Convertir un jour de la semaine en jour générique


Sujet :

Langage Java

  1. #1
    Invité
    Invité(e)
    Par défaut Convertir un jour de la semaine en jour générique
    Bonjour, j'ai un problème un peu spécial...

    Je travaille actuellement sur un programme qui doit permettre, entre autres, de récupérer un élément à un certain horaire (dans un agenda, là on veut savoir les salles libres à l'horaire correspondant). En arguments, je donne au programme le jour de la semaine ainsi que l'heure à laquelle on cherche l'élément.

    Mon problème est que pour passer la date à la base PGSQL, je dois la transformer en timestamp. Les emplois du temps étant les mêmes de façon hebdomadaire (comme au lycée par exemple), il suffirait que je "fige" la date à un jour comme par exemple le premier lundi du mois d'octobre, pour être sûr que l'agenda soit bien renseigné.

    Cela fait déjà plusieurs heures que je m'arrache les cheveux là dessus car je n'arrive pas à voir comment "convertir" un jour de la semaine (ex : le lundi) en un jour générique (ex : le lundi 7 octobre 2013).

    Merci de votre aide.
    Dernière modification par Invité ; 29/04/2013 à 12h00.

  2. #2
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bonjour,

    il faut que tu aies/donnes plus d'informations que le simple jour de la semaine.
    Afin d'obtenir "Lundi 7 Octobre 2013", il faut que aies en entrée :
    soit le timestamp
    soit le Numéro du jour, du mois et de l'année
    soit le numéro de la semaine (45 par exemple) et le nom du jour (lundi par exemple)
    etc etc ...

    A partir de ce genre d'informations, tu pourras ensuite obtenir quelque chose du genre "Lundi 7 Octobre 2013"

    Tu l'obtiendras en utilisant Calendar & SimpleDateFormat.
    Si tu veux plus de précisions sur comment utiliser tout ça, il faudra que tu donnes exactement ce que tu vas avoir comme entrée.

    Cordialement,

  3. #3
    Invité
    Invité(e)
    Par défaut
    Le mois et l'année sont choisis d'office : octobre et l'année en cours.
    Le jour de la semaine passé en entrée est sous la forme d'un chiffre (1 pour dimanche 2 pour lundi etc)

  4. #4
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Le jour de la semaine passé en entrée est sous la forme d'un chiffre (1 pour dimanche 2 pour lundi etc)
    Est-ce que tu veux dire que 1, 2, ... indique le numéro du jour dans le mois ? C'est à dire 1 jusqu'à 30 ou 31 ou 28-29 ?
    Ou bien est ce que 1,2 ... est l'indice du jour dans la semaine ? c'est à dire de 1 (dimanche) à 7 (samedi) ... et rebelote ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    C'est bien le numéro du jour dans la semaine et non dans le mois.
    Les emplois du temps sont identiques quelque soit la semaine.

  6. #6
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bah dans ce cas, tu n'y arriveras pas
    Connaître l'indice du jour dans la semaine, le mois & l'année ne suffisent pas pour avoir une date du genre "Lundi 7 octobre 2013"

    Il te faut soit le numéro de la semaine + indice jour, soit le numéro du jour dans le mois.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Dans l'API Calendar, tu as les méthodes :

    *) setFirstDayOfWeek(int value)

    *) add(int field, int amount)

    avec ça, tu ne dois pas être très loin de ce que tu cherchers.

  8. #8
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Citation Envoyé par plawyx Voir le message
    Dans l'API Calendar, tu as les méthodes :

    *) setFirstDayOfWeek(int value)

    *) add(int field, int amount)

    avec ça, tu ne dois pas être très loin de ce que tu cherchers.
    Je ne vois pas trop comment ça pourrait l'aider
    Par ailleurs, si jamais il sait la quantité à ajouter à une unité de temps (méthode add()) ... alors il peut connaître le jour dans le mois ou l'indice du jour dans le numéro de semaine ...
    Bref, je pense que le problème vient en amont sur la façon d'avoir les infos nécessaires pour pouvoir avoir le jour sous la forme "Lundi 7 Octobre 2013"

    Cordialement,

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    D'après ce que j'ai compris, il souhaite affecter à 1 le premier jour de la semaine en cours, d'ou le "setFirstDayOfWeek" et ensuite à 2 le mardi etc..

    avec la méthode add et le bon argurment , il peut ainsi affecter les jours de la semaine.

  10. #10
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Citation Envoyé par plawyx Voir le message
    D'après ce que j'ai compris, il souhaite affecter à 1 le premier jour de la semaine en cours, d'ou le "setFirstDayOfWeek" et ensuite à 2 le mardi etc..

    avec la méthode add et le bon argurment, il peut ainsi affecter les jours de la semaine.
    Je ne pense que ce soit ce qu'il veut. Après peut être que ce serait à lui de le confirmer.

  11. #11
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    oui, j'ai peut-être mal compris sa question

  12. #12
    Invité
    Invité(e)
    Par défaut
    Je n'ai pas besoin d'avoir une date spécifique. J'ai mis le lundi 7 pour donner un exemple. Il me faut une date correcte pour générer le timestamp, uniquement. Ca peut être le lundi 7 comme le lundi 14... Cela n'a pas d'importance tant que c'est un jour permettant la création d'une date existante.

  13. #13
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Et moi je t'ai déjà répondu que pour avoir le bon timestamp, il faut connaître le numéro du jour dans le mois, ou bien connaître le numéro de la semaine et l'indice du jour dans la semaine.

  14. #14
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    ok, paissad , avec la dernière note de Doezer, je suis d'accord avec toi et il lui manque bien un repère pour caler l'emploi du temps (numèro de semaine).

  15. #15
    Invité
    Invité(e)
    Par défaut
    Il n'y a aucun moyen de connaitre le numéro d'un des jours choisis ?
    Type je sais que je veux un lundi, aucun moyen d'avoir le premier lundi du mois d'octobre 2013 ?

  16. #16
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Citation Envoyé par Doezer Voir le message
    Il n'y a aucun moyen de connaitre le numéro d'un des jours choisis ?
    Type je sais que je veux un lundi, aucun moyen d'avoir le premier lundi du mois d'octobre 2013 ?
    Ah si, il y a moyen de savoir le premier lundi du mois d'octobre 2013.
    Mais à moins qu'on ait tous mal compris ta question, ce n'est pas ce que tu avais demandé. Je pense qu'il manque de la clarté quelque part ^^

  17. #17
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par Doezer Voir le message
    Il n'y a aucun moyen de connaitre le numéro d'un des jours choisis ?
    Type je sais que je veux un lundi, aucun moyen d'avoir le premier lundi du mois d'octobre 2013 ?

    de l'avoir sous quelle forme ?

  18. #18
    Invité
    Invité(e)
    Par défaut
    Le problème n'est pas simple non plus ^^
    Car c'est ça que je veux.

    Pour récap,

    J'ai ma méthode dont le but est de lister les salles libres de mon école à une certaine horaire. Mon prof m'a fourni la requête PGSQL qui le fait en prenant en paramètre un timestamp (qui correspond à une horaire de cours).

    Donc pour faire fonctionner la requête il me faut un timestamp.

    En entrée j'ai le jour de la semaine et l'horaire pour lequel on veut lister les salles libres. Au niveau utilisateur, pas besoin de demander une date en particulier vu que justement les emplois du temps sont identiques quelque soit la semaine choisie.

    Dans mon raisonnement, pour obtenir le timestamp nécessaire, je dois d'abord utiliser une date correcte (avec le jour le mois et l'année) où je sais le mois l'année et quel jour de la semaine choisir.

    Je sais que c'est vraiment pas clair mais c'est pas simple à expliquer ^^

    "de l'avoir sous quelle forme ?"
    J'ai déjà heure, minute, année et moi donc il me faut juste le jour du mois par exemple

  19. #19
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par Doezer Voir le message
    L
    J'ai déjà heure, minute, année et moi donc il me faut juste le jour du mois par exemple
    heures et minutes sont sous forme cumulées depuis une date connue ou alors du style 9h30 (cours en salle YY)

    Si c'est un cumul depuis un temps donné, tu peux trouver le jour et le mois. Si c'est du style 9h30, tu ne peux pas car tu as une remise à zéro de ta référence tous les jours à minuit, calcul modulo 24 heures et là, il te faut alors absolument une autre info pour obtenir le jours.

  20. #20
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bah, même si l'emploi du temps est le même pour toutes les semaines, ce n'est pas pour autant que le timestamp sera le même d'une semaine à une autre

    Ce que je veux dire c'est que là, tu as l'indice du jour de la semaine (lundi, ou jeudi ou autre) .. tu as aussi l'heure de la semaine. Mais il faut que tu arrives à connaître le numéro de la semaine. Il y a 52 semaines dans l'année.
    Et je répète une dernière fois, pour avoir le timestamp, il faudra le numéro de la semaine en amont.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 22/02/2014, 12h01
  2. Récuperer le jour de la semaine
    Par BigBeni dans le forum Assembleur
    Réponses: 5
    Dernier message: 05/04/2006, 20h50
  3. [LG]programme détermination du jour de la semaine
    Par flo.baet dans le forum Langage
    Réponses: 15
    Dernier message: 03/04/2005, 19h01
  4. Récupérez premier jour de la semaine
    Par Krapulax dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/10/2003, 18h18
  5. Réponses: 3
    Dernier message: 19/04/2002, 01h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo