题外话:如果某一年的第一天,也就是1月1日元旦这天是星期日的话,那么这一年的星期总数绝对为53周。你可以数一数哦。
有些时侯,我们需要统计某个时间段的用户操作XX或登录次数的一个统计,不按天为单位,加入统计一年内的某个用户每个星期登录的次数,那么我们就需要这一年(52、53)星期的开始时间和结束时间,sql语句来where date between '开始时间' and '结束时间'
详细源码如下:
/**
* 存储每周开始和结束日期的javabean
*/
public class TimeBean{
private String startDate = "";//开始时间
private String endDate = "";//结束时间
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
}
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
public class Time {
protected Calendar date = null;
protected SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Map<Integer, TimeBean> map = new LinkedHashMap<Integer, TimeBean>();
public Map<Integer, TimeBean> getMap() {
return map;
}
public void setMap(Map<Integer, TimeBean> map) {
this.map = map;
}
public Time(int year) {
date = Calendar.getInstance();
date.set(Calendar.YEAR, year);
//给日历字段设置这段时间可能的最大值
int maxweek = date.getActualMaximum(Calendar.WEEK_OF_YEAR);
System.out.println("本年中最多的星期数为:" + maxweek );
date.set(Calendar.WEEK_OF_YEAR, maxweek);// 设置当前日期为此年的第一周
for (int i = 1; i <= maxweek; i++) {
TimeBean bean = new TimeBean();
date.set(Calendar.DAY_OF_WEEK, 1);// 设置当前日期为每周的第一天,即周日
date.set(Calendar.WEEK_OF_YEAR, i);
String startTime = dateFormat.format(date.getTime());
bean.setStartDate(startTime);
date.set(Calendar.DAY_OF_WEEK, 7);// 设置当前日期为每周的第一天,即周日
bean.setEndDate(dateFormat.format(date.getTime()));
map.put(i, bean);
}
}
public static void main(String[] args) {
Time time = new Time(2008);
Map<Integer, TimeBean> mp = time.getMap();
Set set = mp.entrySet();
for (Iterator iter = set.iterator(); iter.hasNext();) {
Entry entry = (Entry) iter.next();
TimeBean bean = (TimeBean) entry.getValue();
System.out.println("星期:" + entry.getKey() + ",开始时间为:"
+ bean.getStartDate() + ",结束时间为:" + bean.getEndDate());
}
}
}
说明:本例是以2008年为例:打印处的结果为:
本年中最多的星期数为:52
星期:1,开始时间为:2007-12-30,结束时间为:2008-01-05
星期:2,开始时间为:2008-01-06,结束时间为:2008-01-12
星期:3,开始时间为:2008-01-13,结束时间为:2008-01-19
星期:4,开始时间为:2008-01-20,结束时间为:2008-01-26
星期:5,开始时间为:2008-01-27,结束时间为:2008-02-02
星期:6,开始时间为:2008-02-03,结束时间为:2008-02-09
星期:7,开始时间为:2008-02-10,结束时间为:2008-02-16
星期:8,开始时间为:2008-02-17,结束时间为:2008-02-23
星期:9,开始时间为:2008-02-24,结束时间为:2008-03-01
星期:10,开始时间为:2008-03-02,结束时间为:2008-03-08
星期:11,开始时间为:2008-03-09,结束时间为:2008-03-15
星期:12,开始时间为:2008-03-16,结束时间为:2008-03-22
星期:13,开始时间为:2008-03-23,结束时间为:2008-03-29
星期:14,开始时间为:2008-03-30,结束时间为:2008-04-05
星期:15,开始时间为:2008-04-06,结束时间为:2008-04-12
星期:16,开始时间为:2008-04-13,结束时间为:2008-04-19
星期:17,开始时间为:2008-04-20,结束时间为:2008-04-26
星期:18,开始时间为:2008-04-27,结束时间为:2008-05-03
星期:19,开始时间为:2008-05-04,结束时间为:2008-05-10
星期:20,开始时间为:2008-05-11,结束时间为:2008-05-17
星期:21,开始时间为:2008-05-18,结束时间为:2008-05-24
星期:22,开始时间为:2008-05-25,结束时间为:2008-05-31
星期:23,开始时间为:2008-06-01,结束时间为:2008-06-07
星期:24,开始时间为:2008-06-08,结束时间为:2008-06-14
星期:25,开始时间为:2008-06-15,结束时间为:2008-06-21
星期:26,开始时间为:2008-06-22,结束时间为:2008-06-28
星期:27,开始时间为:2008-06-29,结束时间为:2008-07-05
星期:28,开始时间为:2008-07-06,结束时间为:2008-07-12
星期:29,开始时间为:2008-07-13,结束时间为:2008-07-19
星期:30,开始时间为:2008-07-20,结束时间为:2008-07-26
星期:31,开始时间为:2008-07-27,结束时间为:2008-08-02
星期:32,开始时间为:2008-08-03,结束时间为:2008-08-09
星期:33,开始时间为:2008-08-10,结束时间为:2008-08-16
星期:34,开始时间为:2008-08-17,结束时间为:2008-08-23
星期:35,开始时间为:2008-08-24,结束时间为:2008-08-30
星期:36,开始时间为:2008-08-31,结束时间为:2008-09-06
星期:37,开始时间为:2008-09-07,结束时间为:2008-09-13
星期:38,开始时间为:2008-09-14,结束时间为:2008-09-20
星期:39,开始时间为:2008-09-21,结束时间为:2008-09-27
星期:40,开始时间为:2008-09-28,结束时间为:2008-10-04
星期:41,开始时间为:2008-10-05,结束时间为:2008-10-11
星期:42,开始时间为:2008-10-12,结束时间为:2008-10-18
星期:43,开始时间为:2008-10-19,结束时间为:2008-10-25
星期:44,开始时间为:2008-10-26,结束时间为:2008-11-01
星期:45,开始时间为:2008-11-02,结束时间为:2008-11-08
星期:46,开始时间为:2008-11-09,结束时间为:2008-11-15
星期:47,开始时间为:2008-11-16,结束时间为:2008-11-22
星期:48,开始时间为:2008-11-23,结束时间为:2008-11-29
星期:49,开始时间为:2008-11-30,结束时间为:2008-12-06
星期:50,开始时间为:2008-12-07,结束时间为:2008-12-13
星期:51,开始时间为:2008-12-14,结束时间为:2008-12-20
星期:52,开始时间为:2008-12-21,结束时间为:2008-12-27
分享到:
相关推荐
1 求某个日期对应的星期 2 输出某年的日历 0 结束程序 ------------------------------------------ 1 请输入年,月, 日:2010 10 1 2010年10月1日这天是周五 ------------------------------------------
查询距离当前系统时间的本周星期一、星期日的天数的日期 获取系统当前 n天后 开始时间 获取系统当前 n天后 结束时间 按照指定格式,格式化指定时间 获取当前日期 获取给定日期N天后的日期 获取某月开始时间 获取本月...
java时间操作工具类,已封装好,包含获取某一时间的年,月,日,星期。以及对某一时间进行年,月,日,周的加减。还有获取某一时间年,月,日,周的起始和结束时间等等
atEnd 方法 返回一个指示枚举算子是否处于集合结束处的 Boolean 值。 big 方法 在String 对象的文本两端加入 HTML 的标识。 按位与运算符 (&) 对两个表达式执行按位与操作。 按位左移运算符() 将一个表达式的...
atEnd 方法 返回一个指示枚举算子是否处于集合结束处的 Boolean 值。 big 方法 在String 对象的文本两端加入 HTML 的标识。 按位与运算符 (&) 对两个表达式执行按位与操作。 按位左移运算符() 将一个表达式的...
atEnd 方法 返回一个指示枚举算子是否处于集合结束处的 Boolean 值。 big 方法 在String 对象的文本两端加入 HTML 的标识。 按位与运算符 (&) 对两个表达式执行按位与操作。 按位左移运算符() 将一个表达式的...
3.5.13 YEARFRAC——计算从开始日期到结束日期所经历的天数占全年天数的百分比 149 第4章 逻辑函数 151 4.1 逻辑值函数 151 4.1.1 TRUE——返回逻辑值TRUE 151 4.1.2 FALSE——返回逻辑值FALSE 152 4.2 条件...
C程序 课程设计报告 201— 201 学年第 学期 课程名称 C语言课程设计 设计题目 《排班系统》 学生...在单个对象输出结束之后,我们选择了 -1这个不会与其他日期混淆的数字,以此表示可以对下一个对象进行输出。这就需要
来表示结束 所有的标点符号都是英文的 ; 和 ; . 和 。 : 和 : " 和 “ ' 和 ‘ () 和 () [] 和 【】 {} 和 {} 2、注释 单行注释: // 多行注释: /* */ 3、变量 与 常量 1、变量 1、什么是变量 ...
的值 52 <br>0069 求最大公约数 52 <br>0070 求最小公倍数 53 <br>0071 判断素数的算法 53 <br>0072 如何判断一个数是否是完数 54 <br>0073 歌德巴赫猜想的算法 54 <br>0074 八皇后...
程序集变量 日期, 文本型 .程序集变量 时间, 文本型 .程序集变量 客户数, 整数型 .程序集变量 点播播放状态, 逻辑型, , , 点播变量 .程序集变量 目录信息, 文本型, , , 点播变量 .程序集变量 目录名, 文本型, , , ...
hda1中的“1”代表hda的第一个硬盘分区 (partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查 /var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的...
select:从一个或多个表中检索一个或多个数据列。包含信息:想选择什么表,从什么地方选择。必须要有From子句。(最常用) 当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。 当两个表有相同字段时必须加...
//UIView 静态方法,开始一个动画 [UIView beginAnimations:nil context:nil]; begin 开始 //animation 动画 duration 间隔时间 [UIView setAnimationDuration:1]; //从当前状态设置动画开始 [UIView ...
["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"] as x> ${x_index + 1}.${x}, 星期四"><#break></#if> <p>We have these animals: <tr><th>Name<th>Price <tr><td>${...
****************************模板规范化管理 开始**************************** 每个模版要把所用的css,js,img,html按照相关规定,放到指定目录。 每个模版都可定义不同的样式,所以系统内置的功能的相关文件也...
工作内容信息包括周次、时间(年/月/日)、星期、人员编号、工作内 容、系统时间。实验技术员可以按日期查询实验室助理的工作内容。实验室助理可 以在线填写实验教学仪器设备维修申请,申请信息包括设备名称、设备...
说明: 为以下各项指定命名约定, 包括日期和星期的编号, 默认日期格式, 默认小数点字符和组分隔符, 以及默认的 ISO 和本地货币符号。可支持的区域包括美国, 法国和日本。有关所有区域的信息, 请参阅 Oracle8i ...
1.[*修复]修复后台某文件出现任意下载漏洞【感谢乌云[haitaowuyun]发现】 2.[*修复]修复前台存在的SQL注入风险漏洞【感谢乌云[语邑尘]发现】 3.[*修复]修复前台存在的xss跨站脚本攻击漏洞【感谢乌云[evil]发现】 4....
时钟的发生我采用了目前较流行的DS1302实时时钟芯片,而没有用单片机直接产生,因为单片机产生日期星期计算是比较复杂而且不精准的。而DS1302具有涡流电池备电,2100年以前的日期、时间计算、SPI总线通信。并在内部...