java 代码
- java中关于星期时间的操作
- 在最近的一个OA中,我需要判断两个日期是否是同一周,根据一个给定的日期获得所属周的周一和周五的日期。
- 在完成以上任务时,我发现Calendar 的确是一个功能强大的class。
- 下面给出源码,供兄弟们参考指正。
- /*
- * 创建日期 2005-3-30
- package com.infoearth;
- import java.sql.Timestamp;
- import java.text.*;
- import java.util.*;
- /**
- * @李春雷
- *
- public class ManageWeek {
- //判断两个日期是否在同一周
- boolean isSameWeekDates(Date date1, Date date2) {
- Calendar cal1 = Calendar.getInstance();
- Calendar cal2 = Calendar.getInstance();
- cal1.setTime(date1);
- cal2.setTime(date2);
- int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
- if (0 == subYear) {
- if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
- return true;
- }
- else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
- // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周
- if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
- return true;
- }
- else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
- if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
- return true;
- }
- return false;
- }
- //产生周序列
- public static String getSeqWeek(){
- Calendar c = Calendar.getInstance(Locale.CHINA);
- String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
- if(week.length()==1)week = "0" + week;
- String year = Integer.toString(c.get(Calendar.YEAR));
- return year+week;
- }
- //获得周一的日期
- public static String getMonday(Date date){
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
- return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
- }
- //获得周五的日期
- public static String getFriday(Date date){
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY);
- return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
- }
- //当前日期前几天或者后几天的日期
- public static String afterNDay(int n){
- Calendar c=Calendar.getInstance();
- DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
- c.setTime(new Date());
- c.add(Calendar.DATE,n);
- Date d2=c.getTime();
- String s=df.format(d2);
- return s;
- }
- public static void main(String[] args){
- }
- }
- 经常碰到把一个字符串转成一个Date的问题,其实就3句话:
- String myString = "2005/12/20";
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA);
- Date d = sdf.parse(myString);
- 下面是个例子,存档
- package formatdatetime;
- import java.text.*;
- import java.util.*;
- /**
- * @author Administrator
- *
- * TODO 要更改此生成的类型注释的模板,请转至
- * 窗口 - 首选项 - Java - 代码样式 - 代码模板
- */
- public class StringToDateTimeTest {
- public static void main(String[] args) {
- String myString = "Tue Oct 18 04:11:56 CST 2005";
- //String myString = "2005/12/20";
- try {
- SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
- //SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.CHINA);
- Date d = sdf.parse(myString);
- Calendar c = Calendar.getInstance();
- c.setTime(d);
- String s = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
- System.out.println(s);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- 转自:http://blog.youkuaiyun.com/lcllcl987/archive/2005/04/04/336050.aspx
- 原创文章如转载,请注明:转载自:巴士飞扬-技术BLOG : http://www.busfly.cn/
- 本文链接地址:http://www.busfly.cn/post/137.html
- 如果你喜欢本文,请顶一下,支持我,你的支持是我继续发好文章的最大动力。谢谢。
- 好东西需要分享,快把本文发给你的朋友吧~!~