?? sp_function.java
字號:
else if(scanner.curWordValue.equals("day"))
dd=day;
else if(scanner.curWordValue.equals("hour"))
dd=h;
else if(scanner.curWordValue.equals("min"))
dd=m;
else if(scanner.curWordValue.equals("sec"))
dd=s;
else if(scanner.curWordValue.equals("all"))
dates=year+"/"+get2BitDate(mon)+"/"+get2BitDate(day)+" "+get2BitDate(h)+":"+get2BitDate(m)+":"+get2BitDate(s);
else
throw new Exception("不識別的日期類型!");
if(dates!=null)
src.set(dates,WT_StringConst);
else
src.set(String.valueOf(dd),WT_IntegerConst);
*/
String synatax=new String(scanner.curWordValue);
synatax=replaceString(synatax,"yyyy",String.valueOf(y));
synatax=replaceString(synatax,"mm",m<10 ? "0"+m : ""+m);
synatax=replaceString(synatax,"dd",d<10? "0"+d : ""+d);
src.set(synatax,WT_StringConst);
}
else if(fname.equalsIgnoreCase("getSomeTime")){
SP_RunUnit seconds=new SP_RunUnit();
parser.proMathExpression1(seconds);
scanner.readOneWord();
if(scanner.curWordType!=WT_COMMA)
throw new Exception("缺少, !");
scanner.readOneWord();
if(scanner.curWordType!=WT_StringConst)
throw new Exception("缺少時間類型!");
Calendar date = Calendar.getInstance();
date.setTime(new Date((long)(seconds.value1)*1000));
/*
int dd=0;
if(scanner.curWordValue.equals("hour"))
dd=date.get(date.HOUR_OF_DAY);
else if(scanner.curWordValue.equals("min"))
dd=date.get(date.MINUTE);
else if(scanner.curWordValue.equals("second"))
dd=date.get(date.SECOND);
else
throw new Exception("不識別的時間類型!");
src.set(String.valueOf(dd),WT_IntegerConst);
*/
int h=date.get(Calendar.HOUR_OF_DAY);
int m=date.get(Calendar.MINUTE);
int s=date.get(Calendar.SECOND);
String synatax=scanner.curWordValue;
synatax=replaceString(synatax,"hh",h<10 ? "0"+h : ""+h);
synatax=replaceString(synatax,"mm",m<10 ? "0"+m : ""+m);
synatax=replaceString(synatax,"ss",s<10? "0"+s : ""+s);
src.set(synatax,WT_StringConst);
}
else if(fname.equalsIgnoreCase("getYear")){
parser.proMathExpression1(src);
src.value1=getDateField((long)src.value1,"year");
src.type=WT_IntegerConst;
}
else if(fname.equalsIgnoreCase("getMonth")){
parser.proMathExpression1(src);
src.value1=getDateField((long)src.value1,"month");
src.set(get2BitDate((int)src.value1),WT_StringConst);
System.out.println("-src.value2----------"+src.value2);
}
else if(fname.equalsIgnoreCase("getDay")){
parser.proMathExpression1(src);
src.value1=getDateField((long)src.value1,"day");
src.set(get2BitDate((int)src.value1),WT_StringConst);
}
else if(fname.equalsIgnoreCase("getHour")){
parser.proMathExpression1(src);
src.value1=getDateField((long)src.value1,"hour");
src.type=WT_IntegerConst;
}
else if(fname.equalsIgnoreCase("getMinute")){
parser.proMathExpression1(src);
src.value1=getDateField((long)src.value1,"minute");
src.type=WT_IntegerConst;
}
else if(fname.equalsIgnoreCase("getSecond")){
parser.proMathExpression1(src);
src.value1=getDateField((long)src.value1,"second");
src.type=WT_IntegerConst;
}
else if(fname.equalsIgnoreCase("getTimerDate")){ //特例!不具通用性
scanner.readOneWord();
if(scanner.curWordType!=WT_Variable)
throw new Exception("應(yīng)該填入變量!");
String vname=scanner.curWordValue;
scanner.readOneWord();
if(scanner.curWordType!=WT_COMMA)
throw new Exception("缺少, !");
SP_RunUnit off=new SP_RunUnit();
parser.proMathExpression1(off);
src.set(impl.getVariableValue(vname,String.valueOf((int)off.value1)),WT_StringConst);
}
else if(fname.equalsIgnoreCase("getDate")){
//
scanner.readOneWord();
if(scanner.curWordType!=WT_StringConst)
throw new Exception("缺少日期格式!");
String synatax=new String(scanner.curWordValue);
scanner.readOneWord();
if(scanner.curWordType!=WT_COMMA)
throw new Exception("缺少, !");
SP_RunUnit odd=new SP_RunUnit(); //偏移天數(shù)
parser.proMathExpression1(odd);
//
Calendar date = Calendar.getInstance();
date.setTime(new Date(date.getTime().getTime()+(long)(odd.value1)*24*3600*1000));
int y=date.get(Calendar.YEAR);
int m=date.get(Calendar.MONTH)+1;
int d=date.get(Calendar.DAY_OF_MONTH);
synatax=replaceString(synatax,"yyyy",String.valueOf(y));
synatax=replaceString(synatax,"mm",m<10 ? "0"+m : ""+m);
synatax=replaceString(synatax,"dd",d<10? "0"+d : ""+d);
src.set(synatax,WT_StringConst);
}
else if(fname.equalsIgnoreCase("getTime")){
//
scanner.readOneWord();
if(scanner.curWordType!=WT_StringConst)
throw new Exception("缺少時間格式!");
//
Calendar date = Calendar.getInstance();
int h=date.get(Calendar.HOUR_OF_DAY);
int m=date.get(Calendar.MINUTE);
int s=date.get(Calendar.SECOND);
String synatax=scanner.curWordValue;
synatax=replaceString(synatax,"hh",h<10 ? "0"+h : ""+h);
synatax=replaceString(synatax,"mm",m<10 ? "0"+m : ""+m);
synatax=replaceString(synatax,"ss",s<10? "0"+s : ""+s);
src.set(synatax,WT_StringConst);
}
else if(fname.equalsIgnoreCase("getSDate")){
//getSTime("日期字符串","格式","指定year/mon/day",odd)
//日期字符串
SP_RunUnit dt=new SP_RunUnit();
parser.proMathExpression1(dt);
scanner.readOneWord();
if(scanner.curWordType!=WT_COMMA)
throw new Exception("缺少, !");
//格式
scanner.readOneWord();
if(scanner.curWordType!=WT_StringConst)
throw new Exception("缺少日期格式!");
String style=new String(scanner.curWordValue);
scanner.readOneWord();
if(scanner.curWordType!=WT_COMMA)
throw new Exception("缺少, !");
//格式
scanner.readOneWord();
if(scanner.curWordType!=WT_StringConst)
throw new Exception("缺少日期格式!");
String type=new String(scanner.curWordValue);
scanner.readOneWord();
if(scanner.curWordType!=WT_COMMA)
throw new Exception("缺少, !");
//odd
SP_RunUnit odd=new SP_RunUnit();
parser.proMathExpression1(odd);
//
Calendar date=_getDateValue(dt.value2,style,type,(int)(odd.value1));
int y=date.get(Calendar.YEAR);
int m=date.get(Calendar.MONTH)+1;
int d=date.get(Calendar.DAY_OF_MONTH);
String out=new String(style);
out=replaceString(out,"yyyy",String.valueOf(y));
out=replaceString(out,"mm",m<10 ? "0"+m : ""+m);
out=replaceString(out,"dd",d<10? "0"+d : ""+d);
src.set(out,WT_StringConst);
}
//
scanner.readOneWord();
if(scanner.curWordType!=WT_RPAREN)
throw new Exception("缺少) !");
}
//
private String get2BitDate(int d)
{
return d<10 ? "0"+d : String.valueOf(d);
}
//
private int getDateField(long tsec,String fname)
throws Exception
{
Calendar date=Calendar.getInstance();
date.setTime(new Date(tsec*1000));
if(fname.equals("year"))
return date.get(Calendar.YEAR);
else if(fname.equals("month"))
return date.get(Calendar.MONTH)+1;
else if(fname.equals("day"))
return date.get(Calendar.DAY_OF_MONTH);
else if(fname.equals("hour"))
return date.get(Calendar.HOUR_OF_DAY);
else if(fname.equals("minute"))
return date.get(Calendar.MINUTE);
else if(fname.equals("second"))
return date.get(Calendar.SECOND);
throw new Exception("錯誤的時間請求!");
}
private String replaceString(String src,String old,String news) //HiTool已經(jīng)定義,但與之聯(lián)系麻煩
{
if(src==null||old==null||news==null)
return src;
//
int ind=src.indexOf(old);
if(ind<0)return src;
return src.substring(0,ind)+news+src.substring(ind+old.length(),src.length());
}
private Calendar _getDateValue(String tval,String style,String type,int odd)
{
int yid=style.indexOf("yyyy");
int mid=style.indexOf("mm");
int did=style.indexOf("dd");
int year=Integer.parseInt(tval.substring(yid,yid+4));
int mon=Integer.parseInt(tval.substring(mid,mid+2));
int day=1;
if(did>0)
day=Integer.parseInt(tval.substring(did,did+2));
//
Calendar date = Calendar.getInstance();
date.set(year,mon-1+(type.equals("mon")?odd:0),day+(type.equals("day")?odd:0),0,0,0);
return date;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -