Java每日登陆 和 月卡功能
2015-11-13 17:49
537 查看
//每日登陆
<1>
<2>
//月卡
<1>
// 每日登陆--------------- // 初始化今昨两天日期数 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date());// 今天的日期数 Data.today = calendar.get(Calendar.DAY_OF_MONTH); calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH) - 1);// 昨天的日期数 Data.yesterday = calendar.get(Calendar.DAY_OF_MONTH); // 初始化量准备弹出每日登陆窗 Data.lastLoginDate = SPUtil.getDataFormSp(main.getSp(), "lastLoginDate", Data.yesterday);// 如果不存在最后登录日期,将昨天的日期作为最后登录日期 Data.dayNumSum = SPUtil.getDataFormSp(main.getSp(), "dayNumSum", 0); // 如果上次登录是昨天,连续登录天数增加 if (Data.yesterday == Data.lastLoginDate) { Data.dayNumSum += 1; SPUtil.commit(main.getSp(), "dayNumSum", Data.dayNumSum); }
<2>
import java.util.Calendar; //测试函数 public class Main { public static void main(String[] args) { Calendar calender = Calendar.getInstance(); // int today = calender.get(Calendar.DAY_OF_MONTH); System.out.println("1:" + today); // calender.set(Calendar.DAY_OF_MONTH, calender.get(Calendar.DAY_OF_MONTH) + 18); int yesterday = calender.get(Calendar.DAY_OF_MONTH); System.out.println("2:" + yesterday); } } /** 今天是11月13号,再加18天是下个月的1号 1:13 2:1 */
//月卡
package com.jicent.magicgirl.model.other; import com.jicent.magicgirl.utils.SPData; /** * 月卡功能 * @author jianan * */ public class MonthCard { private long endTime; //月卡到期的时间 private static MonthCard instance = null; //购买一次月卡 public void buyOnce(){ final long thirtyDaysDis = 30 * 24 * 60 * 60 * 1000L; //30天的间隔 if(endTime == -1L){ //第一次购买月卡 endTime = System.currentTimeMillis() + thirtyDaysDis; }else{ endTime += thirtyDaysDis; } SPData.getInstance().setEndTime(endTime); } //月卡剩余天数 public long getMonthCardRemainDays(){ long currTime = System.currentTimeMillis(); if(currTime >= endTime){ //如果到期了,则设置-1 endTime = -1; SPData.getInstance().setEndTime(endTime); return 0; }else{ return haoMiao2Day(endTime - currTime); } } //毫秒转化为天 private long haoMiao2Day(long time){ final long oneDay = 24 * 60 * 60 * 1000L; if(time == 0 || time % oneDay == 0){ return time/oneDay; }else{ //剩余不到一天,那么按照一天计算 return time/oneDay + 1; } } //获取唯一实例 public static MonthCard getInstance(){ if(instance == null){ instance = new MonthCard(); } return instance; } //私有构造方法 private MonthCard() { endTime = SPData.getInstance().getEndTime(); } }注意:long后必须加个L,可以看到int最多11,long做多19位。不加L可能导致当int转化为Long时候溢出。
System.out.println(Integer.MAX_VALUE); //2147483647 System.out.println(Long.MAX_VALUE); //9223372036854775807
相关文章推荐
- Spring读书笔记-----使用Spring容器(二)
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Java NIO教程(八)SocketChannel
- java递归解迷宫 求所有解
- Debug日志(一)——session失效引发struts死循环
- 【leetcode】Convert Sorted Array to Binary Search Tree
- 没有纳入spring管理的类如何注入spring管理的对象
- 解析Java的InputStream类并借助其读取ppt文件
- Java NIO教程(七)FileChannel
- spring事务管理 详解
- Gson+JsonPath+泛型 java json解析工具类
- jsp+servlet+javabean
- 第8条:覆盖equals时请遵守通用约定
- java远程调用接口(post方法)之extjs跨域访问
- MyEclipse web项目引用java项目
- Myeclipse如何最佳设置
- java生成文件的默认保存路径与System.getProperty("user.dir")
- SpringMVC接收前台传递的List集合
- spring构造函数注入、setter方法注入和接口注入
- maven spring项目部署问题-source 1.3 中不支持注释 (请使用 -source 5 或更高版本以启用注释)