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

Discussion: Calcul du quantième

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2010
    Messages : 93
    Points : 45
    Points
    45

    Par défaut Calcul du quantième

    Bonjour,

    Savez-vous s'il est possible de calculer un quantième dans Talend à partir d'une date ? Si oui, comment ? (J'utiliserai pour ça un composant tJava mais je ne sais pas ensuite quoi écrire comme code). Si vous avez une piste, merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2010
    Messages : 93
    Points : 45
    Points
    45

    Par défaut

    J'ai tenté cela mais ça ne marche pas :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // test si arg1 est renseigné dans le fichier de contexte
    // sinon lancement avec les paramètres saisies par utilisateur
     
    // Périodicité hebdomadaire le mardi
    // Période recherchée : semaine précédant la semaine de requêtage (du samedi au vendredi)
    // Exemple : Date requête = 20/11/2018 - Quantième début requête = 314 (samedi 10/11/2018) - Quantième fin de requête = 320 (vendredi 16/11/18)
     
    	Date D=TalendDate.getCurrentDate();
     
    if (context.arg1.equals("null")==true)
    {
    	// calcul de arg1 : calcul du quantième du samedi de la semaine précédente
    	// calcul de arg2 : calcul du quantième du vendredi de la semaine précédente
     
        int samedi=TalendDate.getPartOfDate("DAY_OF_YEAR", D);
        int vendredi=TalendDate.getPartOfDate("DAY_OF_YEAR", D);
     
    	context.arg1=samedi;
     
    	context.arg2=vendredi;
     
    }
     
    System.out.println("arg1 :"+context.arg1+" arg2 :"+context.arg2);

    Il faudrait que j'ajoute -10 à samedi et -4 à vendredi mais je ne sais pas comment l'écrire.

  3. #3
    Membre averti

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    juillet 2011
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2011
    Messages : 134
    Points : 321
    Points
    321
    Billets dans le blog
    2

    Par défaut

    Salut lumpys,

    Vu la manière dont tu as écris ton code, je pense que c'est mieux de le faire comme suit, car ton arg1 et arg2 sont int, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date D = sdf.parse("20/11/2018");
     
    if (context.arg1 == null ) {
     
     
        int samedi=TalendDate.getPartOfDate("DAY_OF_YEAR" , D);
        int vendredi=TalendDate.getPartOfDate("DAY_OF_YEAR", D);
     
    	context.arg1=samedi-10;
     
    	context.arg2=vendredi-4;
     
    }
     
    System.out.println("arg1 :"+context.arg1+" arg2 :"+context.arg2);
    Il te suffit de faire une soustraction, normale , j'ai pris comme date 20/11/2018.

    Résultat :

    Nom : res1.PNG
Affichages : 35
Taille : 4,0 Ko

    Si tu prends current date tu aura ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Date D=TalendDate.getCurrentDate();
     
    if (context.arg1 == null ) {
     
     
        int samedi=TalendDate.getPartOfDate("DAY_OF_YEAR" , D);
        int vendredi=TalendDate.getPartOfDate("DAY_OF_YEAR", D);
     
    	context.arg1=samedi-10;
     
    	context.arg2=vendredi-4;
     
    }
     
    System.out.println("arg1 :"+context.arg1+" arg2 :"+context.arg2);
    Tu aura un résultat comme ceci :

    Nom : res2.PNG
Affichages : 35
Taille : 3,8 Ko

    En résumé il te faut modifier la condition de ton if en (context.arg1 == null ) , puis des soustractions normales.

    Voilà.
    Utilisez le bouton pour mettre en valeur la ou les réponses qui vous ont été les plus utiles. Marquez comme si c'est le cas.

    ''Le savoir est la seule matière qui s’accroît lorsqu’on la partage.''
    (Socrate)

Discussions similaires

  1. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 05h09
  2. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 22h29
  3. Réponses: 8
    Dernier message: 18/09/2002, 04h20
  4. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 03h35
  5. Algo de calcul de FFT
    Par djlex03 dans le forum Traitement du signal
    Réponses: 15
    Dernier message: 02/08/2002, 18h45

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