Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi all!
The problem: get an interval and translate it to another language, my case is portuguese (pt-BR).
Documentation reference:
Let's say:
timestamp_0 = 20/07/2018 15:00:00
timestamp_1 = 21/07/2018 17:00:00
// note the 24H pattern
I need to get "1 dia 02 horas", this is pt-BR translation for "1 day 02 hours";
Try 1:
Interval(timestamp_0 - timestamp_1, 'D hh')
// obviously it shows "1 02" as expected, ok
Try 2:
// getting days
Interval(timestamp_1 - timestamp_0, 'D')
// solving plurals
& If(Interval(timestamp_1 - timestamp_0, 'D') > 1, ' dias', ' dia')
// getting hours
& Interval(timestamp_1 - timestamp_0, 'hh')
// solving plurals
& If(Interval(timestamp_1 - timestamp_0, 'hh') > 1, ' horas', ' hora')
// It shows "1 dias 26 horas", so not as expected, and I didn't understood why I got "dias" instead of "dia"... so
Try 3 (fancy and lazy way):
Replace(Interval(timestamp_1 - timestamp_0, 'D hh') , ' ', 'd ') & 'h'
// shows "1d 02h", it is ok for pt-BR, en-US and many other languages
So, to get "1 dia 02 horas" I can implement a tedious and ugly code with many "replaces" and "Ifs". Not so fun.
Is there a smartest way to do that?
Thanks a lot.
Best regards.
P.S.: is there a way to put
in this editor? I mean, like Github or PhpBB fórums, etc.? It would be nice too.
Hi, you can try this.
=SubField(Interval(timestamp_1 - timestamp_0, 'D hh'),' ',1)
// solving plurals
& If(SubField(Interval(timestamp_1 - timestamp_0, 'D hh'),' ',1) > 1, ' dias ', ' dia ')
// getting hours
& SubField(Interval(timestamp_1 - timestamp_0, 'D hh'),' ',2)
// solving plurals
& If(SubField(Interval(timestamp_1 - timestamp_0, 'D hh'),' ',2) > 1, ' horas', ' hora')
Result.
1 dia 02 horas
Don't worry, be Qlik.
Tonial.