⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changetime.java

📁 修改SRC文件中时间的程序
💻 JAVA
字号:
import java.io.*;//import java.text.*;import java.util.*;public class ChangeTime{	private int delay=0;		//超期或推后时间(毫秒)	private String fileName;	//原文件名	private String outFileName;	//输出文件名(可选)	public static void main(String args[]){		if(args.length<2){			System.err.println("Usage: java ChangeTime <file> <delay> [<outfile>]");			System.exit(1);		}				int delay=0;		try{			delay=Integer.parseInt(args[1]);		}		catch(NumberFormatException e)		{			System.err.println("Invalid delay time, Number format");			System.exit(1);		}		ChangeTime chnTime=null;		if(args.length==3){			chnTime=new ChangeTime(args[0],delay,args[2]);		}		else			chnTime=new ChangeTime(args[0],delay,args[0]);		chnTime.displayText();			}//Contructor	public ChangeTime(String fileName,int delay,String outFileName){		this.fileName=fileName;		this.delay=delay;		this.outFileName=outFileName;	}//转换过程	public void displayText() {//		FileInputStream io=null;		BufferedReader bio=null;//		ObjectOutputStream oout=null;		BufferedWriter bout=null;		String line;		Vector vt=new Vector();		//读字幕数据		try{//		io=new FileInputStream(fileName);		bio=new BufferedReader(new FileReader(fileName));		}		catch(FileNotFoundException e){			System.err.println("File not found");			System.exit(1);		}		try{		while((line=bio.readLine())!=null){			int no=Integer.parseInt(line);			String timeZone=bio.readLine();			String text="";			while((line=bio.readLine()).length()!=0){				text+=line+"\n";			}//			System.out.println(text);			FilmFrame ff=new FilmFrame(no,timeZone,text);			vt.add(ff);		}		}		catch(IOException e){			System.err.println("File read error");			System.exit(1);		}		//写字幕数据//		bout=new BufferedWriter(new FileWriter(fileName));		try{//			File file=new File(outFileName);			bout=new BufferedWriter(new FileWriter(outFileName));		}		catch(IOException e){			System.err.println("File open error");			System.exit(1);		}		try{		for (int i=0;i<vt.size() ;i++ )		{			FilmFrame ff=(FilmFrame)vt.elementAt(i);			delay=ff.changeTime(delay);			String str=ff.toString();			bout.write(str,0,str.length());			bout.flush();//			bout.newLine();//			System.out.println(ff.getTimeZone());		}		}		catch(IOException e){			System.err.println("File write error");			System.exit(1);		}	}//字幕类	class FilmFrame implements Serializable	{		private int beginTime;		private int endTime;		private int seqence;		private String text;//Consturctor		public FilmFrame(int seqence,int beginTime,int endTime,String text){			this.seqence=seqence;			this.beginTime=beginTime;			this.endTime=endTime;			this.text=text;		}		public FilmFrame(int seqence,String timeZone,String text){			this.seqence=seqence;			this.beginTime=toTime(timeZone.substring(0,12));			this.endTime=toTime(timeZone.substring(17));			this.text=text;		}//获得序号		public int getSequence(){			return seqence;		}//获得字幕文本		public String getText(){			return text;		}//修改时间		public int changeTime(int delay){			beginTime+=delay;			endTime+=delay;			if(beginTime<0){				delay=delay-beginTime;				endTime=endTime-beginTime;				beginTime=0;			}			return delay;		}//解析时间				private int toTime(String timeZone){			int hour=Integer.parseInt(timeZone.substring(0,2));			int minute=Integer.parseInt(timeZone.substring(3,5));			int second=Integer.parseInt(timeZone.substring(6,8));			int msec=Integer.parseInt(timeZone.substring(9));			return (((hour*60)+minute)*60+second)*1000+msec;		}//把时间转换为字幕时间段		private String toTimeZone(int time){			int hour;			int minute;			int second;			int msec;			String result="";			hour=(int)Math.floor(time/3600000);			minute=(int)Math.floor((time % 3600000)/60000);			second=(int)Math.floor(((time % 3600000) %60000 )/1000);			msec=time-hour*3600000-minute*60000-second*1000;						result+=((hour>=10)?(""+hour):("0"+hour))+":";			result+=((minute>=10)?(""+minute):("0"+minute))+":";			result+=(second>=10)?(""+second):("0"+second);			result+=","+((msec>=100)?(""+msec):((msec>=10)?("0"+msec):("00"+msec)));			return result;		}//获得字幕时间段		public String getTimeZone(){			return toTimeZone(beginTime)+" --> "+toTimeZone(endTime);		}//输出字幕		public String toString(){			return seqence+"\n"+				getTimeZone()+"\n"+				text+"\n";		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -