J'ai compris, j'ai dû apprendre à utiliser un peu Tasker, la solution est un peu maladroite mais elle devrait probablement être faite de cette manière dans Tasker.
La variable la plus importante pour de telles manipulations de la date et de l'heure dans Tasker est une variable globale %TIMES
qui contient l'heure actuelle en secondes - c'est donc un grand nombre entier.
Ajouter par exemple 30 jours à cela nécessite de Définir la variable (avec Mathématiques activées) comme suit :
%TIMES + (30 * 86400)
Demain est :
%TIMES + (1 * 86400)
Le problème principal est que vous devez convertir la valeur en une chaîne de caractères de date formatée. Tel que je l'ai compris, il n'existe pas de commande intégrée pour cela dans Tasker.
Vous devez créer une étape de tâche JavaScriptlet pour cela et coller là-bas le code de cette page :
1340586441681
1369445351826
54
getFormattedDate
10
2
129
var gsMonthNames = new Array(
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
);
var gsDayNames = new Array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);
var d = new Date(par[0] * 1000);
var f = par[1];
var formatteddate = f.replace(/(yyyy|yy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/gi,
function($1)
{
switch ($1)
{
case 'yyyy': return d.getFullYear();
case 'yy': return ('0' + d.getFullYear()).slice(-2);
case 'mmmm': return gsMonthNames[d.getMonth()];
case 'mmm': return gsMonthNames[d.getMonth()].slice(0,3);
case 'mm': return ('0' + (d.getMonth() + 1)).slice(-2);
case 'dddd': return gsDayNames[d.getDay()];
case 'ddd': return gsDayNames[d.getDay()].slice(0,3);
case 'dd': return ('0' + d.getDate()).slice(-2);
case 'hh': return ('0' + ((h = d.getHours() % 12) ? h : 12)).slice(-2);
case 'HH': return ('0' + d.getHours()).slice(-2);
case 'nn': return ('0' + d.getMinutes()).slice(-2);
case 'ss': return ('0' + d.getSeconds()).slice(-2);
case 'a/p': return d.getHours() < 12 ? 'a' : 'p';
}
}
);
45
126
%formatteddate
Avant cette étape Javascriptlet, insérez 2 étapes où vous définissez deux variables d'entrée %par1
(contient la date et l'heure en secondes de l'étape précédente) et %par2
(contient yyyymmdd
- le format de date).
La chaîne de caractères de date formatée est alors disponible dans la variable %formatteddate
.
Quant à obtenir la semaine suivante :
- Exécuter Shell
date -d +"%Y"
vers %year
- Exécuter Shell
date -d +"%V"
vers %week
- Définir la variable
%week
sur %week + 1
(Calculer les mathématiques)
- Définir la variable
%year
sur %year + 1
(Calculer les mathématiques) (Si %week > 52
)
- Définir la variable
%week
sur 1
(Si %week > 52
)
- La
yyyyww.htm
de la semaine suivante peut alors être écrite comme %year%week.htm