/*
* 作成日: 2004/04/09
* License Apache 2.0
* この生成されたコメントの挿入されるテンプレートを変更するため
* ウィンドウ > 設定 > Java > コード生成 > コードとコメント
*/
package org.jpn.xucker.subtitle.srt;
/**
* @author ak
* License Apache 2.0
*
* この生成されたコメントの挿入されるテンプレートを変更するため
* ウィンドウ > 設定 > Java > コード生成 > コードとコメント
*/
public class TimeData {
private int hour;
private int second;
private int minute;
private int millisecond;
public TimeData(long millisecond){
setTime(millisecond);
}
public void setTime(long millisecond){
long hour_millisecond=(60*60*1000);
int minute_millisecond=60*1000;
int second_millisecond=1000;
int hour=(int)(millisecond/hour_millisecond);
long remain=millisecond%hour_millisecond;
int minute=(int)(remain/minute_millisecond);
remain=remain%minute_millisecond;
int second=(int)(remain/second_millisecond);
remain=remain%second_millisecond;
setHour(hour);
setMinute(minute);
setSecond(second);
setMillisecond((int)remain);
}
public TimeData(String line){
int hour=Integer.parseInt(line.substring(0,2));
int minute=Integer.parseInt(line.substring(3,5));
int second=Integer.parseInt(line.substring(6,8));
int milli=Integer.parseInt(line.substring(9,12));
setHour(hour);
setMinute(minute);
setSecond(second);
setMillisecond(milli);
}
public long getTime(){
long result=millisecond;
result+=second*1000;
result+=minute*60*1000;
result+=hour*60*60*1000;
return result;
}
public String toString(){
return toLabel2(hour)+":"+toLabel2(minute)+":"+toLabel2(second)+","+toLabel3(millisecond);
}
public String toLabel2(int number){
String v=""+number;
if(v.length()<2)
v="0"+v;
return v;
}
public String toLabel3(int number){
String v=""+number;
if(v.length()<2)
v="0"+v;
if(v.length()<3)
v="0"+v;
if(v.length()>3)
return "999";
return v;
}
/**
* @return
*/
public int getHour() {
return hour;
}
/**
* @return
*/
public int getMillisecond() {
return millisecond;
}
/**
* @return
*/
public int getMinute() {
return minute;
}
/**
* @return
*/
public int getSecond() {
return second;
}
/**
* @param i
*/
public void setHour(int i) {
hour = i;
}
/**
* @param i
*/
public void setMillisecond(int i) {
millisecond = i;
}
/**
* @param i
*/
public void setMinute(int i) {
minute = i;
}
/**
* @param i
*/
public void setSecond(int i) {
second = i;
}
/**
* @param duration
*/
public synchronized void roll(long duration) {
long current=getTime();
current+=duration;
setTime(current);
}
}
|