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.
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.
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.
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 :
Il te suffit de faire une soustraction, normale , j'ai pris comme date 20/11/2018.
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);
Résultat :
Si tu prends current date tu aura ça :
Tu aura un résultat comme ceci :
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);
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager