一段大姨妈计算代码片段
来源:互联网 发布:linux虚拟机真机桥接 编辑:程序博客网 时间:2024/06/12 01:49
private void initDateList (int thisMonth) { // Logger.d ("thisMonth--->" + thisMonth); list.clear (); isYJSetted = false; isAQSetted = false; isPLSetted = false; isToday = false; dayIndex = 0; allIndex = 0; thisMonthDays = 0; remainderIndex = 0; startIndex = 0; lastMonthStartNum = 0; Calendar cal = Calendar.getInstance (); int m = thisMonth - 1; cal.set (year, m, 1); int addedCount = 0; int dayInWeek = cal.get (Calendar.DAY_OF_WEEK); int monthStart = dayInWeek; if (monthStart == 1) { monthStart = 8; } monthStart -= 1; //以日为开头-1,以星期一为开头-2 if (monthStart > 0) { cal.set (Calendar.DAY_OF_MONTH, 0);//这里设置为上个月最后一天(10-31) allIndex = cal.get (Calendar.DAY_OF_MONTH);//上个月天数 cal.add (Calendar.DAY_OF_MONTH, -monthStart + 1); lastMonthStartNum = startIndex = cal.get (Calendar.DAY_OF_MONTH);//第一格显示上个月的几号 dayIndex = allIndex - startIndex; /** 上个月展示日期*/ for (int i = 0; i <= dayIndex; i++) { DayBean bean = new DayBean (); bean.type = 0; bean.month = thisMonth - 1; bean.day = startIndex; bean.date = cal.getTime (); list.add (bean); startIndex++; addedCount++; cal.add (Calendar.DATE, 1); } } cal.setTime (currDate); cal.set (Calendar.DAY_OF_MONTH, 1); DayBean bean; /** 本月日期 */ while (cal.get (Calendar.MONTH) == m) { bean = new DayBean (); bean.day = cal.get (Calendar.DATE); bean.type = 1; bean.month = thisMonth; bean.date = cal.getTime (); list.add (bean); cal.add (Calendar.DATE, 1); addedCount++; thisMonthDays++; } // Logger.d ("thisMonthDays--->" + thisMonthDays); remainderIndex = 42 - addedCount; /** 下月日期*/ cal.setTime (currDate); cal.add (Calendar.MONTH, 1); cal.set (Calendar.DAY_OF_MONTH, 1); for (int i = 1; i <= remainderIndex; i++) { bean = new DayBean (); bean.day = i; bean.type = 2; bean.month = thisMonth + 1; bean.date = cal.getTime (); list.add (bean); cal.add (Calendar.DATE, 1); } /** 本页面展示日期全部加入list end*/ if (periodDate != null) { /** 上次月经期*/ cal.setTime (periodDate); cal.add (Calendar.DATE, -PERIOD_CYCLE); // Logger.d ("上次开始日期--->" + cal.get (Calendar.DAY_OF_MONTH)); for (int i = 0; i < PERIOD_LAST; i++) { /** 月经期 */ if (cal.get (Calendar.MONTH) == m) { bean = list.get (cal.get (Calendar.DATE) + dayIndex); bean.period = 1; } else if (cal.get (Calendar.MONTH) == m - 1) { int index = cal.get (Calendar.DATE) - lastMonthStartNum; if (index >= 0) { bean = list.get (index); bean.period = 1; } } cal.add (Calendar.DATE, 1); } /** 计算本次月经期之前的排卵期 */ cal.setTime (periodDate); cal.add (Calendar.DATE, -19); for (int i = 0; i < 10; i++) { /** 排卵期 */ if (cal.get (Calendar.MONTH) == m) { bean = list.get (cal.get (Calendar.DATE) + dayIndex); bean.period = 2; } cal.add (Calendar.DATE, 1); } cal.setTime (periodDate); for (int i = 0; i < PERIOD_LAST; i++) { /** 月经期 */ if (cal.get (Calendar.MONTH) == m) { bean = list.get (cal.get (Calendar.DATE) + dayIndex); bean.period = 1; } else if (cal.get (Calendar.MONTH) == m + 1) { int plus = cal.get (Calendar.DATE); if (plus <= remainderIndex) { bean = list.get (plus + dayIndex + thisMonthDays); bean.period = 1; } } cal.add (Calendar.DATE, 1); } /** 计算下次月经期前的排卵期 */ cal.setTime (periodDate); cal.add (Calendar.DATE, PERIOD_CYCLE); cal.add (Calendar.DATE, -19); for (int i = 0; i < 10; i++) { /** 排卵期 */ if (cal.get (Calendar.MONTH) == m) { bean = list.get (cal.get (Calendar.DATE) + dayIndex); bean.period = 2; } else if (cal.get (Calendar.MONTH) == m + 1) { int plus = cal.get (Calendar.DATE); if (plus <= remainderIndex) { bean = list.get (plus + dayIndex + thisMonthDays); bean.period = 2; } } cal.add (Calendar.DATE, 1); } /** 计算下次月经期*/ cal.setTime (periodDate); cal.add (Calendar.DATE, PERIOD_CYCLE); for (int i = 0; i < PERIOD_LAST; i++) { if (cal.get (Calendar.MONTH) == m) { // Logger.d ("这个月---》"+cal.get (Calendar.DATE)); bean = list.get (cal.get (Calendar.DATE) + dayIndex); bean.period = 1; } else if (cal.get (Calendar.MONTH) == m + 1) { // Logger.d ("下个月---》"+cal.get (Calendar.DATE)); int plus = cal.get (Calendar.DATE); if (plus <= remainderIndex) { bean = list.get (plus + dayIndex + thisMonthDays); bean.period = 1; } } cal.add (Calendar.DATE, 1); } } mHandler.sendEmptyMessage (1); }
主要就是Calendar的运用。
0 0
- 一段大姨妈计算代码片段
- 计算一段代码执行时间
- ACProtect 一段代码自修改片段
- 从一段Deferred代码片段想到的
- 大姨妈的后现代生活
- “制服大姨妈”对症调理
- 计算一段代码的执行时间
- iOS计算一段代码执行时间
- 一段生成大数据测试数据的java code 片段
- 他大姨妈(ただいま)
- 大姨妈的由来【摘字古书】
- idea 大姨妈之不能建立class
- php中计算学生位置代码片段
- 一段计算派(∏)的代码
- VC++如何计算一段代码的执行时间
- java计算一段代码执行的时间
- 如何计算一段代码的运行时间
- Python:计算一段代码的执行时间
- 仿照微信游戏n次郎
- php 位运算符
- 编写媒体基础MFT组件
- uva--10706+递推
- Windows Phone 8 本地代码实现游戏
- 一段大姨妈计算代码片段
- Java中的Class类
- Error executing aapt: Return code -1073741819 问题
- 包转发与吞吐之间的计算
- 使用第三方登陆和分享可以参考http://www.mob.com/网站
- C/C++读写注册表中二进制数据【代码示例】
- Ext.ux.tree.TreeGrid 排序
- 匹配滤波器的物理解释
- HDOJ 题目2838 Cow Sorting(树状数组逆序对)