Как сказано в заголовке, когда я конвертирую char[]
в строку, я получаю странную строку. Я читал, что это происходит из-за того, что длина строк не равна количеству полученных байтов. но я не знаю, как это исправить. вот что я сделал, пробовал несколько способов
class Time
{
private int hour;
private int min;
private int sec;
public Time(int h,int m,int s)
{
this.hour = h;
this.min = m;
this.sec = s;
}
public int GetHour()
{
return this.hour;
}
public int GetMin()
{
return this.min;
}
public int GetSec()
{
return this.sec;
}
public double GetTimeDiff(Time t)
{
double hour = Math.Abs(this.hour - t.GetHour())*60;
double min = Math.Abs(this.min - t.GetMin());
double sec=((double)(Math.Abs(this.sec-t.GetSec())))/60.0;
return min + sec+hour;
}
public Time GetCurrentTime()
{
return new Time(this.hour, this.min, this.sec);
}
public override string ToString()
{
char[] arr = new char[8];
arr= "00:00:00".ToArray();
if (this.hour >= 10)
{
arr[0] = (char)(this.hour / 10);
arr[1] = (char)(this.hour % 10);
}
else
{
arr[1] = (char)(this.hour);
}
if (this.min >= 10)
{
arr[3] = (char)(this.min / 10);
arr[4] = (char)(this.min % 10);
}
else
{
arr[4] = (char)(this.min);
}
if (this.sec >= 10)
{
arr[6] = (char)(this.sec / 10);
arr[7] = (char)(this.sec % 10);
}
else
{
arr[7] = (char)(this.sec);
}
string str = "";
for (int i = 0; i < arr.Length; i++)
{
str += arr[i].ToString();
}
return str;
}
}