qt: Show weeks as well as years behind for long timespans

Closes #3811.
This commit is contained in:
Wladimir J. van der Laan 2014-03-15 10:13:37 +01:00 committed by langerhans
parent 2f1c2eab52
commit 9fd1acceba
2 changed files with 28 additions and 5 deletions

View file

@ -689,17 +689,27 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
{
// Represent time from last generated block in human readable text
QString timeBehindText;
if(secs < 48*60*60)
const int HOUR_IN_SECONDS = 60*60;
const int DAY_IN_SECONDS = 24*60*60;
const int WEEK_IN_SECONDS = 7*24*60*60;
const int YEAR_IN_SECONDS = 31556952; // Average length of year in Gregorian calendar
if(secs < 2*DAY_IN_SECONDS)
{
timeBehindText = tr("%n hour(s)","",secs/(60*60));
timeBehindText = tr("%n hour(s)","",secs/HOUR_IN_SECONDS);
}
else if(secs < 14*24*60*60)
else if(secs < 2*WEEK_IN_SECONDS)
{
timeBehindText = tr("%n day(s)","",secs/(24*60*60));
timeBehindText = tr("%n day(s)","",secs/DAY_IN_SECONDS);
}
else if(secs < YEAR_IN_SECONDS)
{
timeBehindText = tr("%n week(s)","",secs/WEEK_IN_SECONDS);
}
else
{
timeBehindText = tr("%n week(s)","",secs/(7*24*60*60));
int years = secs / YEAR_IN_SECONDS;
int remainder = secs % YEAR_IN_SECONDS;
timeBehindText = tr("%1 and %2").arg(tr("%n year(s)", "", years)).arg(tr("%n week(s)","", remainder/WEEK_IN_SECONDS));
}
progressBarLabel->setVisible(true);

View file

@ -636,6 +636,19 @@ This product includes software developed by the OpenSSL Project for use in the O
<numerusform>%n weeks</numerusform>
</translation>
</message>
<message>
<location line="+0"/>
<source>%1 and %2</source>
<translation type="unfinished"></translation>
</message>
<message numerus="yes">
<location line="+0"/>
<source>%n year(s)</source>
<translation type="unfinished">
<numerusform>%n year</numerusform>
<numerusform>%n years</numerusform>
</translation>
</message>
<message>
<location line="+4"/>
<source>%1 behind</source>