Skip to content

Instantly share code, notes, and snippets.

@brake
Created September 7, 2014 13:42
Show Gist options
  • Select an option

  • Save brake/75b7786d48c051e87ebe to your computer and use it in GitHub Desktop.

Select an option

Save brake/75b7786d48c051e87ebe to your computer and use it in GitHub Desktop.
Utility functions for Tasker (famous automation tool for Android). Provides correct time as text for use with Russian speaking TTS.
// Для использования в Android с программой Tasker.
// Формирует текущее время в текстовом виде для передачи любой русскоговорящей системе TTS.
// Решает проблему некорректного произношения времени, например 0:00, или 20:00.
// Проверен с русскими голосами Acapella и SVOX.
var hours = {
"час": [1, 21],
"часа": [2, 3, 4, 22, 23],
"часов": [0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
}
var hours_text = [
"ноль",
"один",
"два",
"три",
"четыре",
"пять",
"шесть",
"семь",
"восемь",
"девять",
"десять",
"одиннадцать",
"двенадцать",
"тринадцать",
"четырнадцать",
"пятнадцать",
"шестнадцать",
"семнадцать",
"восемнадцать",
"девятнадцать",
"двадцать",
"двадцать один",
"двадцать два",
"двадцать три"
];
var minutes = {
"минута": [1, 21, 31, 41, 51],
"минут": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30, 35, 36, 37, 38, 39, 40, 45, 46, 47, 48, 49, 50, 55, 56, 57, 58, 59],
"минуты": [2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54]
}
var minutes_text = [
"ровно",
"одна",
"две",
"три",
"четыре",
"пять",
"шесть",
"семь",
"восемь",
"девять",
"десять",
"одиннадцать",
"двенадцать",
"тринадцать",
"четырнадцать",
"пятнадцать",
"шестнадцать",
"семнадцать",
"восемнадцать",
"девятнадцать",
];
var minutes_tens_text = [
"двадцать",
"тридцать",
"сорок",
"пятьдесят"
];
function get_minutes_text(value) {
var text = "";
if(value < 20) {
text = minutes_text[value];
}
else {
var h_mins = parseInt(value/10);
var l_mins = value % (h_mins * 10);
text = minutes_tens_text[h_mins - 2];
if(l_mins) {
text += " " + minutes_text[l_mins];
}
}
for(suffix in minutes) {
if(minutes[suffix].indexOf(value) != -1) {
text += " " + suffix;
break;
}
}
return text;
}
function get_hours_text(value) {
var text = hours_text[value];
for(suffix in hours) {
if(hours[suffix].indexOf(value) != -1) {
text += " " + suffix;
break;
}
}
return text;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment