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
parent 2834bc8013
commit a1465ac8e6
2 changed files with 28 additions and 5 deletions

View file

@ -673,17 +673,27 @@ void BitcoinGUI::setNumBlocks(int count, int nTotalBlocks)
{ {
// Represent time from last generated block in human readable text // Represent time from last generated block in human readable text
QString timeBehindText; 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 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); 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> <numerusform>%n weeks</numerusform>
</translation> </translation>
</message> </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> <message>
<location line="+4"/> <location line="+4"/>
<source>%1 behind</source> <source>%1 behind</source>