计算两个Calendar类参数相差的天数
来源:互联网 发布:淘宝客吧 百度贴吧 编辑:程序博客网 时间:2024/05/21 09:48
初学Android,遇到这个问题还不知道怎么办,Android没有提供函数来计算,而且自己数据库用的是MySQL,也是自己不熟悉的数据库,就没有过多的想用SQL来写。
在网上找了几个,感觉有些复杂,想了想有一点思路,写出来可以实现
思路:
- 首先判断是否日期一前一后
- 边计数边增加比较早的日期
- 等到两个日期一样时,停止操作,返回计数
/** * Created by Harry on 2015/4/27. * This class is used for compute days between two different dates */public class DateCompute { private static String TAG = DateCompute.class.getName(); private static Calendar startDate; private static Calendar endDate; private static int dayCount; public DateCompute(Calendar p_startDate, Calendar p_endDate) { startDate = p_startDate; endDate = p_endDate; dayCount = 0; } /** * Since both are Calendar, there is no need to add one more month each. * @return */ public int computeCalendar(){ /*if startDate is before endDate, loop continues*/ while(startDate.before(endDate)){ startDate.add(Calendar.DAY_OF_MONTH, 1); dayCount++; } Log.v(TAG, "$$$$$$ days between two dates are : " + dayCount); return dayCount; }}
注意:
- Calendar类中,MONTH是比真实日期小1的,所以传递参数的时候注意变换
- 如果遇到String类型的,要先转换成Calendar,下面的代码可以实现
方法也就是取substring,然后分别赋值给Calendar对象(数据全是数据库里提取的数据,数据库函数就没有贴上了)
private static void calendarMinus(){ Calendar calendar1 = Calendar.getInstance(); Calendar calendar2 = Calendar.getInstance(); String sql = "select startDate, endDate from habit where userID = 2 and habitID = 2;"; Cursor cursor = Database.getDatabase().getWritableDatabase().rawQuery(sql, null); String start, end; cursor.moveToFirst(); start = cursor.getString(cursor.getColumnIndex("startDate")); end = cursor.getString(cursor.getColumnIndex("endDate")); /*yyyy-MM-dd*/ calendar1.set(Calendar.YEAR, Integer.parseInt(start.substring(0,4))); calendar1.set(Calendar.MONTH, Integer.parseInt(start.substring(5,7))); calendar1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(start.substring(8,10))); calendar2.set(Calendar.YEAR, Integer.parseInt(end.substring(0,4))); calendar2.set(Calendar.MONTH, Integer.parseInt(end.substring(5,7))); calendar2.set(Calendar.DAY_OF_MONTH, Integer.parseInt(end.substring(8,10))); DateCompute compute = new DateCompute(calendar1, calendar2); compute.computeCalendar(); }
0 0
- 计算两个Calendar类参数相差的天数
- Calendar:计算两个日期相差的天数
- Calendar类计算两个日期之间相差天数
- 计算两个日期相差的工作天数
- 计算两个时间的相差天数。。
- Java 计算两个日期相差的天数
- Java 计算两个日期相差的天数
- 计算两个日期之间相差的天数
- js计算两个时间相差的天数
- JS计算两个日期相差的天数!
- js计算两个日期相差的天数
- Java 计算两个日期相差的天数
- Jquery计算两个日期相差的天数
- JAVA 计算两个日期相差的天数
- 计算两个日期相差的天数
- Java 计算两个日期相差的天数
- Java:计算两个日期相差的天数
- 计算两个日期相差的天数、月份
- 不是运算容错,而是高温降频率,软件劣化老硬件
- extjs上传图片预览
- java类生成日历自己写的,可以输出到html页面
- Python学习过程中的错误记录——有关elif
- java PrintWriter 返回的打印值乱码的问题
- 计算两个Calendar类参数相差的天数
- Android资源访问
- 使用EditText在不同场景下调用软键盘的总结
- 管理之路(二)
- nyist 982 Triangle Counting(数学题,找规律 递推)
- 测试一下
- AutoCAD在点击打印时出现致命错误
- 不容易系列之二
- Oracle 维护常用SQL