java 日期时间 ,实现sybase dateadd函数
2013-11-09 09:40
204 查看
/**
* sybase 函数说明
* dateadd(datepart,number,date_expr)
返回日期,通过在date_expr上增加指定number的日期部件而产生的
* datepart
日期部件 缩写 值范围
年 yy 1753-9999
季度 qq 1-4
月 mm 1-12
每年中的天 dy 1-366
天 dd 1-31
星期 wk 1-54
星期天 dw 1-7(1=sunday)
小时 hh 0-23
分钟 mi 0-59
秒 ss 0-59
毫秒 ms 0-999
*/
public class DataAdd {
/**
* sysbase 函数说明
* dateadd(datepart,number,date_expr)
返回日期,通过在date_expr上增加指定number的日期部件而产生的
* datepart
日期部件 缩写 值范围
年 yy 1753-9999
季度 qq 1-4
月 mm 1-12
每年中的天 dy 1-366
天 dd 1-31
星期 wk 1-54
星期天 dw 1-7(1=sunday)
小时 hh 0-23
分钟 mi 0-59
秒 ss 0-59
毫秒 ms 0-999
*/
private static String dataFormat = "yyyyMMdd hh:mm:ss:SSS";
private static SimpleDateFormat sf = new SimpleDateFormat(dataFormat);
public String getDataFormat() {
return dataFormat;
}
public void setDataFormat(String dataFormat) {
this.dataFormat = dataFormat;
}
public DataAdd(){
}
// 日期部件,增加数,日期
public static Date dataadd(String datapart,int num,Date inDate){
Calendar calendar = Calendar.getInstance();
calendar.setTime(inDate);
Calendar c = Calendar.getInstance();
System.out.println("date---"+sf.format(inDate));
int year = c.get(calendar.YEAR);
System.out.println("year--"+year);
int month = c.get(calendar.MONTH)+1;
System.out.println("month--"+month);
int dy = c.get(calendar.DAY_OF_YEAR);
System.out.println("dy--"+dy);
int qq = month/3+1;
System.out.println("qq--"+qq);
int dd = c.get(calendar.DATE);
System.out.println("dd--"+dd);
int wk = c.get(calendar.WEEK_OF_YEAR);
System.out.println("wk--"+wk);
int dw = c.get(calendar.DAY_OF_WEEK);
System.out.println("dw--"+dw);
int hourOfDay = c.get(calendar.HOUR_OF_DAY);
System.out.println("hourOfDay--"+hourOfDay);
int minute = c.get(calendar.MINUTE);
System.out.println("minute--"+minute);
int second = c.get(calendar.SECOND);
System.out.println("second--"+second);
int millisecond = c.get(calendar.MILLISECOND);
System.out.println("millisecond--"+millisecond);
if(datapart.equalsIgnoreCase("yy")){
c.add(Calendar.YEAR, num);
}
else if(datapart.equalsIgnoreCase("qq")){
c.add(Calendar.MONTH, num*3);
}
else if(datapart.equalsIgnoreCase("mm")){
c.add(Calendar.MONTH, num);
}
else if(datapart.equalsIgnoreCase("dy")){
c.add(Calendar.DAY_OF_YEAR, num);
}
else if(datapart.equalsIgnoreCase("dd")){
c.add(Calendar.DATE, num);
}
else if(datapart.equalsIgnoreCase("wk")){
c.add(Calendar.WEEK_OF_YEAR, num);
}
else if(datapart.equalsIgnoreCase("dw")){
c.add(Calendar.DAY_OF_WEEK, num);
}
else if(datapart.equalsIgnoreCase("hh")){
c.add(Calendar.HOUR_OF_DAY, num);
}
else if(datapart.equalsIgnoreCase("mi")){
c.add(Calendar.MINUTE, num);
}
if(datapart.equalsIgnoreCase("ss")){
c.add(Calendar.SECOND, num);
}
if(datapart.equalsIgnoreCase("ms")){
c.add(Calendar.MILLISECOND, num);
}
System.out.println("new --date---"+sf.format(c.getTime()));
return c.getTime();
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(DataAdd.dataadd("qq", -1, new Date()));
}
* sybase 函数说明
* dateadd(datepart,number,date_expr)
返回日期,通过在date_expr上增加指定number的日期部件而产生的
* datepart
日期部件 缩写 值范围
年 yy 1753-9999
季度 qq 1-4
月 mm 1-12
每年中的天 dy 1-366
天 dd 1-31
星期 wk 1-54
星期天 dw 1-7(1=sunday)
小时 hh 0-23
分钟 mi 0-59
秒 ss 0-59
毫秒 ms 0-999
*/
public class DataAdd {
/**
* sysbase 函数说明
* dateadd(datepart,number,date_expr)
返回日期,通过在date_expr上增加指定number的日期部件而产生的
* datepart
日期部件 缩写 值范围
年 yy 1753-9999
季度 qq 1-4
月 mm 1-12
每年中的天 dy 1-366
天 dd 1-31
星期 wk 1-54
星期天 dw 1-7(1=sunday)
小时 hh 0-23
分钟 mi 0-59
秒 ss 0-59
毫秒 ms 0-999
*/
private static String dataFormat = "yyyyMMdd hh:mm:ss:SSS";
private static SimpleDateFormat sf = new SimpleDateFormat(dataFormat);
public String getDataFormat() {
return dataFormat;
}
public void setDataFormat(String dataFormat) {
this.dataFormat = dataFormat;
}
public DataAdd(){
}
// 日期部件,增加数,日期
public static Date dataadd(String datapart,int num,Date inDate){
Calendar calendar = Calendar.getInstance();
calendar.setTime(inDate);
Calendar c = Calendar.getInstance();
System.out.println("date---"+sf.format(inDate));
int year = c.get(calendar.YEAR);
System.out.println("year--"+year);
int month = c.get(calendar.MONTH)+1;
System.out.println("month--"+month);
int dy = c.get(calendar.DAY_OF_YEAR);
System.out.println("dy--"+dy);
int qq = month/3+1;
System.out.println("qq--"+qq);
int dd = c.get(calendar.DATE);
System.out.println("dd--"+dd);
int wk = c.get(calendar.WEEK_OF_YEAR);
System.out.println("wk--"+wk);
int dw = c.get(calendar.DAY_OF_WEEK);
System.out.println("dw--"+dw);
int hourOfDay = c.get(calendar.HOUR_OF_DAY);
System.out.println("hourOfDay--"+hourOfDay);
int minute = c.get(calendar.MINUTE);
System.out.println("minute--"+minute);
int second = c.get(calendar.SECOND);
System.out.println("second--"+second);
int millisecond = c.get(calendar.MILLISECOND);
System.out.println("millisecond--"+millisecond);
if(datapart.equalsIgnoreCase("yy")){
c.add(Calendar.YEAR, num);
}
else if(datapart.equalsIgnoreCase("qq")){
c.add(Calendar.MONTH, num*3);
}
else if(datapart.equalsIgnoreCase("mm")){
c.add(Calendar.MONTH, num);
}
else if(datapart.equalsIgnoreCase("dy")){
c.add(Calendar.DAY_OF_YEAR, num);
}
else if(datapart.equalsIgnoreCase("dd")){
c.add(Calendar.DATE, num);
}
else if(datapart.equalsIgnoreCase("wk")){
c.add(Calendar.WEEK_OF_YEAR, num);
}
else if(datapart.equalsIgnoreCase("dw")){
c.add(Calendar.DAY_OF_WEEK, num);
}
else if(datapart.equalsIgnoreCase("hh")){
c.add(Calendar.HOUR_OF_DAY, num);
}
else if(datapart.equalsIgnoreCase("mi")){
c.add(Calendar.MINUTE, num);
}
if(datapart.equalsIgnoreCase("ss")){
c.add(Calendar.SECOND, num);
}
if(datapart.equalsIgnoreCase("ms")){
c.add(Calendar.MILLISECOND, num);
}
System.out.println("new --date---"+sf.format(c.getTime()));
return c.getTime();
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(DataAdd.dataadd("qq", -1, new Date()));
}
相关文章推荐
- Java实现时间日期格式转换示例
- Java 使用jdk8的新特性LocalDate和LocalDateTime 实现当前时间,日期加减,是否闰年,时间戳,时间线程每秒改变一次
- Java将字符串转化为时间格式,与实现日期的计算
- Java GUI实现的日期时间选择器
- Excel日期/时间存储数值转换为具体日期/时间(java实现)
- Java实现字符串解析为日期时间的方法示例
- java简单实现测试程序执行时间及日期转换字符串
- java获取当前时间和前一天日期(实现代码)
- java实现记事本基本功能:新建、打开、保存、另存为、退出、替换、全部替换、复制、剪切、粘贴、全选、获取当前时间日期、修改字体、颜色、自动换行等
- java实现纠正日期时间
- java实现10s时间的输出和日期格式
- Java实现纪元秒和本地日期时间互换的方法【经典实例】
- java基于正则表达式实现时间日期的常用判断操作实例
- Unix时间戳转日期时间格式,C#、Java、Python各语言实现!
- 下列代码可以实现把Java的CST格式的时间字符串转为为Date对象和所需要的日期时间格式!
- java时间戳转日期格式的实现代码
- java输出日期时间
- Java 8时间和日期API 20例
- Java日期时间操作的一些方法
- Java实现时间动态显示方法汇总