简介
记录C#开发过程中遇到的问题解决方法,代码片段积累等
格式:
问题:(什么样的问题)
解决方法:(如何解决,必填)
描述:(解决思路,非必须)
记录
以下为记录内容
问题1:如何得到指定日期,且当月如果指定日期找不到找上个月的日期?
解决方法:
/**
* 得到指定的日期,例如date为2017-03-25,参数day为21,那么此值结果2017-03-21
* @param day day为指定日期,格式为dd,不能小于1
* @return 得到指定day日, 如果当月不满, 则返回上个月
*/
private Date getAppointDay(int day) {
if (day <= 0)
return null;
Calendar calendar = Calendar.getInstance();
Date d_date;
boolean isMax;// 指定日必须小于或等于当月最大的一天
while (true) {
isMax = day <= calendar
.getActualMaximum(Calendar.DATE);
if (Integer.parseInt(new SimpleDateFormat("dd").format(calendar.getTime())) == day
&& isMax // 如果与指定的day相等,且指定日小于等于当月最大值则返回当日
) {
d_date = calendar.getTime();
break;
} else {
if (isMax) {// 如果指定日小于等于当月最大值,则减一天,否则指定值改为当月最大值,避免无限循环
calendar.add(Calendar.DATE, -1);
} else {
day = calendar
.getActualMaximum(Calendar.DATE);
}
}
}
return d_date;
}
描述:如果当前日期达不到指定日,则返回上一天的值,直到得到指定的日期,如果指定值过大,则返回上一天中月份最大的天数的日期.反之不超过当月最大天数时,搜索知道指定日便返回最终结果
问题2:如果java.sql.Connection对象变量名为connection且已初始化,如何查询数据库的版本号?
解决方法:
DatabaseMetaData databaseMetaData = connection.getMetaData();
String DatabaseProductVersion="当前数据库的版本号为:" + databaseMetaData.getDatabaseProductVersion();
网友评论