📄 data.java
字号:
*/
public static String currentdate(){
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;
int day = cal.get(Calendar.DATE);
String currDay=year +"年"+ month +"月"+ day + "日";
return currDay;
}
/**
* 根据输入的类型对Date型数据行转换
* @param orignalDate 输入值
* @param dateType 输入类型
*/
public static String SQLOutValue(Date orignalDate,String dateType) throws RuntimeException{
String tempValue="";
if(orignalDate==null){
return tempValue;
}
try{
if(dateType.equals("datetime")){
tempValue=convertDateToString(orignalDate,"datetime");
}else{
tempValue=convertDateToString(orignalDate,"smalldatetime");
}
}catch(Exception ex){
throw new RuntimeException(orignalDate+"不能转换成"+dateType+"类型");
}
return tempValue;
}
/**
* 将int型数据转换为String型,再对其进行转换
* @param orignalValue 输入值
*/
public static String SQLOutValue(int orignalValue) throws RuntimeException{
return SQLOutValue(orignalValue+"");
}
/**
* 判断输入值是否有效
* @param orignalValue 输入值
*/
public static boolean hasValue(String orignalValue){
if(orignalValue==null){
return false;
}else if(orignalValue.equals("")){
return false;
}else if(orignalValue.equalsIgnoreCase("null")){
return false;
}else return true;
}
/**
* last modified by lucas on 2003-2-25
* compare date function ,only compare yyyy-MM-dd
*/
public static int compareDate(Date firstDate,Date secondDate) throws RuntimeException{
if(firstDate.getYear() > secondDate.getYear()){
return 1;
}else if(firstDate.getYear()< secondDate.getYear()){
return -1;
}else if(firstDate.getMonth()> secondDate.getMonth()){
return 1;
}else if(firstDate.getMonth()<secondDate.getMonth())
return -1;
else if(firstDate.getDate()>secondDate.getDate())
return 1;
else if(firstDate.getDate()<secondDate.getDate()){
return -1;
}else
return 0;
}
/**
* 两个String类型的日期进行比较
* @param strFirstDate 第一个日期
* @param strSecondDate 第二个日期
*/
public static int compareDate(String strFirstDate,String strSecondDate) throws RuntimeException{
Date firstDate=convertStringToDate(strFirstDate);
Date secondDate=convertStringToDate(strSecondDate);
return compareDate(firstDate,secondDate);
}
/**
* 字符串日期和Date型日期进行比较
* @param strFirstDate 第一个日期
* @param secondDate 第二个日期
*/
public static int compareDate(String strFirstDate,Date secondDate)throws RuntimeException{
Date firstDate=convertStringToDate(strFirstDate);
return compareDate(firstDate,secondDate);
}
/**
* Date型日期和字符串日期进行比较
* @param firstDate 第一个日期
* @param strSecondDate 第二个日期
*/
public static int compareDate(Date firstDate,String strSecondDate)throws RuntimeException{
Date secondDate=convertStringToDate(strSecondDate);
return compareDate(firstDate,secondDate);
}
/**
* 根据输入格式对输入值进行转换
* @param sdate 输入值
* @param format 输入格式
*/
public static String dateFormat(String sdate, String format){
String format1 = "";
if(sdate.indexOf("-")>0)
format1 = "yyyy-MM-dd";
else if (sdate.indexOf("/")>0)
format1 = "dd/mm/yyyy";
else
format1 = "yyyy年MM月dd日";
return dateFormat(sdate,format1,format);
}
/**
* 将输入值从一种格式转换成另一种格式
* @param sdate 输入值
* @param format1 输入格式1
* @param format2 输入格式2
*/
public static String dateFormat(String sdate, String format1,String format2){
SimpleDateFormat df1 = new SimpleDateFormat(format1);
Date date = null;
try{
date = df1.parse(sdate);
}catch(ParseException pe){
pe.printStackTrace();
}
Calendar cal = null;
cal=Calendar.getInstance();
cal.setTime(date);
SimpleDateFormat df2 = new SimpleDateFormat(format2);
return df2.format(cal.getTime());
}
/**
* 比较两个日期之间相差多少年、多少月、多少星期、多少天
* @param compare w代表星期、m代表月、y代表年,不填代表天
* @param sdate1 日期1
* @param sdate2 日期2
*/
public static int dateDiff(String compare, String sdate1, String sdate2){
SimpleDateFormat df1 = null;
SimpleDateFormat df2 = null;
if(sdate1.indexOf("-")>0)
df1 = new SimpleDateFormat("yyyy-MM-dd");
else
df1 = new SimpleDateFormat("yyyy年MM月dd日");
if(sdate2.indexOf("-")>0)
df2 = new SimpleDateFormat("yyyy-MM-dd");
else
df2 = new SimpleDateFormat("yyyy年MM月dd日");
Date date1 = null;
Date date2 = null;
try{
date1 = df1.parse(sdate1);
date2 = df2.parse(sdate2);
}catch (ParseException pe){
pe.printStackTrace();
}
Calendar cal1 = null;
Calendar cal2 = null;
cal1=Calendar.getInstance();
cal2=Calendar.getInstance();
// different date might have different offset
cal1.setTime(date1);
long ldate1 = date1.getTime() + cal1.get(Calendar.ZONE_OFFSET) + cal1.get(Calendar.DST_OFFSET);
cal2.setTime(date2);
long ldate2 = date2.getTime() + cal2.get(Calendar.ZONE_OFFSET) + cal2.get(Calendar.DST_OFFSET);
// Use integer calculation, truncate the decimals
int hr1 = (int)(ldate1/3600000); //60*60*1000
int hr2 = (int)(ldate2/3600000);
int days1 = (int)hr1/24;
int days2 = (int)hr2/24;
int dayDiff = days2 - days1;
int weekOffset = (cal2.get(Calendar.DAY_OF_WEEK) - cal1.get(Calendar.DAY_OF_WEEK))<0 ? 1 : 0;
int weekDiff = dayDiff/7 + weekOffset;
int yearDiff = cal2.get(Calendar.YEAR) - cal1.get(Calendar.YEAR);
int monthDiff = yearDiff * 12 + cal2.get(Calendar.MONTH) - cal1.get(Calendar.MONTH);
if(compare.equals("w"))
return weekDiff;
if(compare.equals("m"))
return monthDiff;
if(compare.equals("y"))
return yearDiff;
return dayDiff;
}
/**
* 一个日期加上一定天数后的日期
* @param compare w代表星期、m代表月、y代表年,不填代表天
* @param sdate1 日期
* @param addNumber 天数
*/
public static String dateAdd(String compare, String sdate,int addNumber)
{
Date date = null;
SimpleDateFormat df = null;
if(sdate.indexOf("-")>0)
df = new SimpleDateFormat("yyyy-MM-dd");
else
df = new SimpleDateFormat("yyyy年MM月dd日");
try{
date = df.parse(sdate);
}catch(ParseException pe){
pe.printStackTrace();
}
Calendar cal = null;
cal=Calendar.getInstance();
cal.setTime(date);
if(compare.equalsIgnoreCase("d"))
cal.add(Calendar.DATE,addNumber);
if(compare.equalsIgnoreCase("m"))
cal.add(Calendar.MONTH,addNumber);
if(compare.equalsIgnoreCase("y"))
cal.add(Calendar.YEAR,addNumber);
return df.format(cal.getTime());
}
/**
* 某年某月某日是星期几
* @param tmpDate 输入日期
*/
public static String weekDay(String tmpDate){
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
Date date = null;
String days[] = {"","日","一","二","三","四","五","六"};
try{
date = df.parse(tmpDate);
}catch(ParseException pe){
pe.printStackTrace();
}
Calendar cal = null;
cal=Calendar.getInstance();
cal.setTime(date);
return "星期" + days[cal.get(Calendar.DAY_OF_WEEK)];
}
/**
* 计算日期的函数 author: HST
* 参照日期指当按照年月进行日期的计算的时候,参考的日期,如下例,结果返回2002-03-31
* <p><b>Example: </b><p>
* <p>FDate tD=new FDate();<p>
* <p>Date baseDate =new Date();<p>
* <p>baseDate=tD.getDate("2000-02-29");<p>
* <p>Date comDate =new Date();<p>
* <p>comDate=tD.getDate("1999-12-31");<p>
* <p>int inteval=1;<p>
* <p>String tUnit="M";<p>
* <p>Date tDate =new Date();<p>
* <p>tDate=PubFun.calDate(baseDate,inteval,tUnit,comDate);<p>
* <p>System.out.println(tDate.toString());<p>
* @param baseDate 起始日期
* @param interval 时间间隔
* @param unit 时间间隔单位
* @param compareDate 参照日期
* @return Date类型变量
*/
public static Date calDate(Date baseDate, int interval, String unit, Date compareDate)
{
Date returnDate = null;
GregorianCalendar mCalendar = new GregorianCalendar();
mCalendar.setTime( baseDate );
if (unit.equals("Y")) mCalendar.add(Calendar.YEAR, interval);
if (unit.equals("M")) mCalendar.add(Calendar.MONTH, interval);
if (unit.equals("D")) mCalendar.add(Calendar.DATE, interval);
if (compareDate != null)
{
GregorianCalendar cCalendar = new GregorianCalendar();
cCalendar.setTime( compareDate );
int mYears = mCalendar.get(Calendar.YEAR);
int mMonths = mCalendar.get(Calendar.MONTH);
int cMonths = cCalendar.get(Calendar.MONTH);
int cDays = cCalendar.get(Calendar.DATE);
if (unit.equals("Y"))
{
cCalendar.set(mYears, cMonths, cDays);
if (cCalendar.before( mCalendar ))
{
mCalendar.set(mYears+1, cMonths, cDays);
returnDate = mCalendar.getTime();
}
else
returnDate = cCalendar.getTime();
}
if (unit.equals("M"))
{
cCalendar.set(mYears, mMonths, cDays);
if (cCalendar.before( mCalendar ))
{
mCalendar.set(mYears, mMonths+1, cDays);
returnDate = mCalendar.getTime();
}
else
returnDate = cCalendar.getTime();
}
if (unit.equals("D"))
returnDate = mCalendar.getTime();
}
else
returnDate = mCalendar.getTime();
return returnDate;
}
/**
* 重载计算日期,参数见楼上,add by Minim
* @param baseDate
* @param interval
* @param unit
* @param compareDate
* @return
*/
public static String calDate(String baseDate, int interval, String unit, String compareDate) {
try {
FDate tFDate = new FDate();
Date bDate = tFDate.getDate(baseDate);
Date cDate = tFDate.getDate(compareDate);
return tFDate.getString(calDate(bDate, interval, unit, cDate));
}
catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
/**
* 根据输入数值返回子字符串
* @param str 输入字符串
* @param fontnum 输入数值
* @return 返回子字符串
*/
public static String getSubString(String str,int fontnum){
String tmpStr=str;
if (tmpStr.length()>=fontnum){
tmpStr=tmpStr.substring(0,fontnum);
tmpStr=tmpStr+"...";
}
return tmpStr;
}
/**
* 两个日期和时间相减,求得秒数
* @param fTime
* @param tTime
* @return
*/
public static int timeDiff(String fTime,String tTime){
int n = 0;
fTime = formatDate(fTime);
tTime = formatDate(tTime);
String d1 = fTime.trim().substring(0,11);
String d2 = tTime.trim().substring(0,11);
fTime = fTime.trim().substring(11);
tTime = tTime.trim().substring(11);
int dDiff = Data.dateDiff("",d1,d2);
int n1 = returnSec(fTime);
int n2 = returnSec(tTime);
n = n2 - n1;
n = n + dDiff*24*3600;
return n ;
}
/**
* 将double型的科学记数法转化成为sql server的money型
* @param num
* @return
*/
public static String converTechToMoney(double num){
String value = "";
java.text.DecimalFormat df=new java.text.DecimalFormat("##0.00##");
value = df.format(num);
return value;
}
/**
* 将double型的科学记数法转化成为标准记数法
* @param num
* @return
*/
public static String converTechToNum(double num){
String value = "";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -