728x90

자막에 나오는 시간 단위를 받아서 보기 좋게 정렬하는 코드이다.


public double TimeCodeValue(string timecode)
{
    // 00:01:53,039
    string[] parts = timecode.Replace(",", ":").Split(':', ',');
    double Hours = int.Parse(parts[0]);
    double Minutes = int.Parse(parts[1]);
    double Seconds = int.Parse(parts[2]);
    double Milliseconds = int.Parse(parts[3]);

    return (Hours * 3600 + Minutes * 60 + Seconds) * 1000 + Milliseconds;
}

public string TimeCodeFormat(double timecodevalue)
{

    // 91469

    double temptime = System.Math.Truncate(timecodevalue / 1000); // 몫
    double hour = System.Math.Truncate(temptime / 3600);
    double minute = System.Math.Truncate(temptime % 3600 / 60);
    double seconds = temptime % 3600 % 60;
    double milliseconds = timecodevalue % 1000; // 나머지
    return string.Format("{0:0}:{1:00}:{2:00},{3:000}", hour, minute, seconds, milliseconds);
}


1. 밀컨즈(milliseconds) 출하고
2. 시간 단위로 환산하기 위해서 3600(60분 X 60초)로 나눈 몫을 구한다.

    Math.Truncate 함수를 사용하여 반올림하지 않고 정수만 잘라낸다.

3. 분 단위로 환산하기 위해서

    시간단위로 나눈 나머지를 가지고 다수 몫을 구한다.

4. 초 를 구하기 위해서는

    시간단위, 분단위를 구한 나머지를 구한다.

5. 밀리세컨즈(milliseconds) 는 초단위로 환산하는 나머지를 구하면 된다.







'C# > 문법 및 기능' 카테고리의 다른 글

C# URL 경로 링크  (0) 2015.11.10
C# Timer.Tick 이벤트, 이벤트 분석  (0) 2015.10.22
C# 몫과 나머지 구하기  (0) 2015.10.17
C# 문자열 다루기 StringBuilder  (2) 2015.10.10
C# 문자열 분리 Split  (0) 2015.10.09
블로그 이미지

Link2Me

,