示例#1
0
RGString STRBaseLocus :: ReconstructAlleleName (int id, Allele* nearAllele) {

    int difference = id - nearAllele->GetBioID ();
    RGString nearName = nearAllele->GetAlleleName ();

    if (difference == 0)
        return nearName;

    int KK = CoreRepeatNumber;
    double nearDouble;
    int nearInt;
    int temp;
    RGString intString;
    RGString fractString;
    RGString returnValue;
    nearDouble = nearName.ConvertToDouble ();
    nearInt = nearName.ConvertToInteger ();
    temp = (int) floor (10 * (nearDouble - nearInt) + 0.5);
    // temp is fractional part...should be integer mod 4

    if (difference > 0) {

        nearInt += (difference / KK);
        temp += difference%KK;
        nearInt += (temp / KK);
        temp = temp%KK;
    }

    else {

        difference = - difference;
        nearInt -= (difference / KK);
        temp -= difference%KK;

        if (temp < 0) {

            temp += KK;
            nearInt--;
        }
    }

    if (nearInt < 1) {

        returnValue = "$";
        return returnValue;
    }

    intString.Convert (nearInt, 10);

    if (temp == 0)
        return intString;

    fractString.Convert (temp, 10);
    returnValue = intString + "." + fractString;
    return returnValue;
}
RGString PackedTime :: GetStringTime () const {

	RGString temp;
	RGString Ans;
	temp.Convert (hour, 10);
	Ans = temp + ":";
	temp.Convert (minute, 10);
	Ans += temp + ":";
	temp.Convert (second, 10);
	Ans += temp + ":";
	temp.Convert (hsecond, 10);
	Ans += temp;
	return Ans;
}