Exemple #1
0
QString RealFormat::formatInt(const RawFloatIO& io) const
{
  if (minIntLg <= 0 && !showLeadingZero && _isZero(io.intpart))
    return QString();
  QString intpart = intPart(io);
  if (minIntLg < intpart.size())
  {
    QChar pad = ' ';
    if (showLeadingZero)
      pad = '0';
    if (io.signSignificand == Compl2)
      switch (io.baseSignificand)
    {
      case 2 : pad = '1'; break;
      case 8 : pad = '7'; break;
      case 16: pad = 'F'; break;
    }
    intpart = QString(minIntLg - intpart.size(), pad) + intpart;
  }
  if (lowerCaseHexDigit)
    intpart = intpart.toLower();
  if (!useGrouping() || grouplg >= intpart.size())
    return intpart;
  QString result;
  int idx = intpart.size();
  while (idx > 0)
  {
    idx -= grouplg;
    QChar gchar = ' ';
    if (intpart.at(idx) != ' ')
      gchar = groupchar;
    if (idx <= 0)
      result = intpart.mid(0, idx + grouplg) + result;
    else
      result = intpart.mid(idx, grouplg) + gchar + result;
  }
  return result;
}
Exemple #2
0
//islamic to christian calendar
int* Qhijri::islToChr(int y, int m, int d, int diff = 0) {
	
	int jd=intPart((11*y+3)/30)+354*y+30*m-intPart((m-1)/2)+d+1948440-385-diff;	
	if (jd> 2299160 )
	{
		int l=jd+68569;
		int n=intPart((4*l)/146097);
		l=l-intPart((146097*n+3)/4);
		int i=intPart((4000*(l+1))/1461001);
		l=l-intPart((1461*i)/4)+31;
		int j=intPart((80*l)/2447);
		d=l-intPart((2447*j)/80);
		l=intPart(j/11);
		m=j+2-12*l;
		y=100*(n-49)+i+l;
	}	
	else	
	{
		int j=jd+1402;
		int k=intPart((j-1)/1461);
		int l=j-1461*k;
		int n=intPart((l-1)/365)-intPart(l/1461);
		int i=l-365*n+30;
		j=intPart((80*i)/2447);
		d=i-intPart((2447*j)/80);
		i=intPart(j/11);
		m=j+2-12*i;
		y=4*k+n+i-4716;
	}

	int * res = new int [3];
	res[0] = d;
	res[1] = m;
	res[2] = y;
	return res;
}
Exemple #3
0
//christian to islamic calendar
int* Qhijri::chrToIsl(int y, int m, int d, int diff = 0) {
	
	int jd = 0;
	if ((y>1582)||((y==1582)&&(m>10))||((y==1582)&&(m==10)&&(d>14))) 
	{
		jd=intPart((1461*(y+4800+intPart((m-14)/12)))/4)+intPart((367*(m-2-12*(intPart((m-14)/12))))/12)-
		intPart( (3* (intPart(  (y+4900+    intPart( (m-14)/12)     )/100)    )   ) /4)+d-32075;
	}
	else
	{
		jd = 367*y-intPart((7*(y+5001+intPart((m-9)/7)))/4)+intPart((275*m)/9)+d+1729777;
	}
		
		int l=jd-1948440+10632;
		int n=intPart((l-1)/10631);
		l=l-10631*n+354+diff;
		int j=(intPart((10985-l)/5316))*(intPart((50*l)/17719))+(intPart(l/5670))*(intPart((43*l)/15238));
		l=l-(intPart((30-j)/15))*(intPart((17719*j)/50))-(intPart(j/16))*(intPart((15238*j)/43))+29;
		m=intPart((24*l)/709);
		d=l-intPart((709*m)/24);
		y=30*n+j-30;

	int * res = new int [3];
	res[0] = d;
	res[1] = m;
	res[2] = y;
	return res;
}