`
grsy
  • 浏览: 962 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于日期小应用

阅读更多
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
* <p>Title: 周计算类,星期一为一周的开始,星期日为一周的结束</p>
* <p>Description: 在两年的交接地带还有疑问。</p>
* <p>比如2006-12-29到2009-01-04,属于2008年的最后一周,</p>
* <p>2009-01-05位2009年第一周的开始。</p>
* <p>db2种的week_iso也是这样计算的</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>DateTime: 2006-4-11 23:36:39</p>
*
* @author gumpgz
* @version 1.0
*/

Calendar c = Calendar.newInstance();
c.set(2007,5,1);
c.get(Calendar.DAY_OF_WEEK);



public class WeekUtil {
/**
* 取得当前日期是多少周
*
* @param date
* @return
*/
public static int getWeekOfYear(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setMinimalDaysInFirstWeek(7);
c.setTime (date);

return c.get(Calendar.WEEK_OF_YEAR);
}

/**
* 得到某一年周的总数
*
* @param year
* @return
*/
public static int getMaxWeekNumOfYear(int year) {
Calendar c = new GregorianCalendar();
c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);

return getWeekOfYear(c.getTime());
}

/**
* 得到某年某周的第一天
*
* @param year
* @param week
* @return
*/
public static Date getFirstDayOfWeek(int year, int week) {
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set (Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, 1);

Calendar cal = (GregorianCalendar) c.clone();
cal.add(Calendar.DATE, week * 7);

return getFirstDayOfWeek(cal.getTime ());
}

/**
* 得到某年某周的最后一天
*
* @param year
* @param week
* @return
*/
public static Date getLastDayOfWeek(int year, int week) {
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, 1);

Calendar cal = (GregorianCalendar) c.clone();
cal.add(Calendar.DATE , week * 7);

return getLastDayOfWeek(cal.getTime());
}

/**
* 取得当前日期所在周的第一天
*
* @param date
* @return
*/
public static Date getFirstDayOfWeek(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday
return c.getTime ();
}

/**
* 取得当前日期所在周的最后一天
*
* @param date
* @return
*/
public static Date getLastDayOfWeek(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday
return c.getTime();
}

public static void main(String[] args) {
int year = 2006;
int week = 1;

// 以2006-01-02位例
Calendar c = new GregorianCalendar();
c.set(2006, Calendar.JANUARY, 2);
Date d = c.getTime();

System.out.println("current date = " + d);
System.out.println("getWeekOfYear = " + getWeekOfYear(d));
System.out.println("getMaxWeekNumOfYear = " + getMaxWeekNumOfYear(year));
System.out.println("getFirstDayOfWeek = " + getFirstDayOfWeek(year, week));
System.out.println("getLastDayOfWeek = " + getLastDayOfWeek(year, week));
System.out.println ("getFirstDayOfWeek = " + getFirstDayOfWeek(d));
System.out.println("getLastDayOfWeek = " + getLastDayOfWeek(d));
}
}

分享到:
评论

相关推荐

    一个JAVA应用程序的 日期控件

    "一个JAVA应用程序的日期控件"就是一个专门解决此类问题的组件,它允许用户通过图形化界面来选择日期,而不是手动输入,从而提高用户体验并减少输入错误。 Java作为跨平台的编程语言,提供了丰富的库和API来创建...

    微信小程序日历日期选择器.zip

    在微信小程序开发中,日历日期选择器是一个常见的交互组件,用于用户选择特定日期或日期范围。本项目“微信小程序日历日期选择器”提供了一种定制化解决方案,允许开发者根据需求调整显示的月份和可选日期范围,并且...

    小程序日期时间组件demo

    学习和理解这个demo,开发者不仅能掌握日期时间组件的实现,还能进一步提升对小程序开发的理解,为开发更复杂的应用打下坚实的基础。在实际应用中,可以根据需求调整组件的样式和功能,使其更符合用户需求。

    SQL SERVER 关于日期函数(字符转日期,日期转字符串)

    日期函数在实际应用中非常重要,可以用来解决各种日期和时间相关的问题。例如,计算两个日期之间的差异、获取当前日期和时间、将日期和时间数据转换为字符串等。 小结 本文总结了 SQL Server 中的日期函数,包括...

    移动应用日期控件

    移动应用中的日期控件是用户界面中不可或缺的部分,它们允许用户选择或输入日期,以便进行各种操作,如设定提醒、记录事件或者筛选信息等。在iOS、Android以及跨平台开发中,日期控件的设计和实现各有特点。本教程将...

    特殊日期配置小工具

    【特殊日期配置小工具】是一个针对特定日期管理的软件应用,其主要功能是帮助用户进行工作日或特殊日期的配置。这个工具可能被用于企业管理、人力资源规划或是个人时间管理等多种场景,尤其对于那些需要考虑非标准...

    微信小程序日期函数

    以上就是微信小程序中关于日期处理的一些关键知识点,掌握这些技能,可以帮助你更有效地实现与日期相关的功能。在实际项目中,可能还需要考虑到时区转换、日期范围检查等复杂情况,但以上基础方法足以应对大部分日常...

    小程序日历选择插件(选择日期区间).zip

    在微信小程序开发中,日历选择插件是一个非常实用的功能,尤其对于那些需要用户输入日期范围的应用场景,例如预订、预约、活动报名等。标题提到的"小程序日历选择插件(选择日期区间)"就是一个专门针对这类需求设计...

    aero任务栏小图标显示时间日期主题

    Aero任务栏小图标显示时间日期主题,是Aero界面的一项特色功能,允许用户在任务栏的小图标区域同时看到当前的时间、日期以及星期。这种设置可以方便用户快速获取系统时间信息,而无需打开额外的窗口或应用程序。 要...

    日期计算简单应用

    在IT行业中,日期计算是一项基础但重要的技能,尤其在开发日历、日程管理或时间相关的应用程序时。本文将深入探讨“日期计算简单应用”这一主题,主要关注阳历与阴历之间的转换、星期计算以及如何在C# WinForm环境下...

    根据年月日计算周日期的小程序

    标题中的“根据年月日计算周日期的小程序”是指一个编程应用,它的主要功能是接收用户在控制台输入的年、月、日信息,然后利用特定算法或规则计算出对应的周日期。在计算机编程中,周日期通常指的是某一天属于一年中...

    C# winfrom关于日期时间的换算

    以上是关于如何在C# WinForms应用程序中进行日期时间换算的一些基本操作。这些操作对于处理与日期相关的需求非常有用。例如,在开发财务软件时,可能需要计算每个月的最后一天以便进行结算;在日历应用中,可能需要...

    LCalendar移动端日期小变动

    LCalendar移动端日期小变动主要涉及的是在移动设备上优化日期显示的方式,以提供更佳的用户体验。这个改动可能包括但不限于日期的布局、颜色、字体、交互等方面,旨在提高日历应用的可读性和易用性。针对“滑动”这...

    统一修改所有的应用日期

    能够一次性修改某个文件夹下所有文件的应用日期,相当好用

    DateTimePicker微信小程序日期选择年月日时分秒

    在微信小程序中,`DateTimePicker`组件用于实现用户选择日期和时间的功能,它允许用户从一个弹出的日历和时间选择器中选取特定的日期、月份、年份、小时、分钟以及秒。这个组件在各种场景下都非常实用,比如填写表单...

    日期和时间的应用.ppt

    关于php的时间和日期的应用

    日期多选,连续日期、间断日期快速选择

    "日期多选,连续日期、间断日期快速选择"这一主题,是关于如何高效地设计并实现这样一个功能的讨论。下面将详细阐述相关知识点。 1. **日期多选**: - 用户可能需要同时选择多个不连续的日期,例如在安排会议或...

    关于日期的处理包括java和sql

    关于日期的处理包括java和sql 日期处理是计算机编程中一个非常重要的概念,因为日期是我们生活中最常用的数据类型之一。在java和sql中,日期处理是必不可少的一部分。下面我们将从多方面来讨论日期处理的问题。 ...

    微信小程序uniapp日历组件,可以自定义文案,可以上下滑动选择日期

    在IT行业中,微信小程序是一种轻量级的应用程序,它运行在微信环境中,无需下载安装即可使用,极大地便利了用户。而uni-app则是一个多端开发框架,它允许开发者使用一套代码来构建iOS、Android、H5、微信小程序、...

Global site tag (gtag.js) - Google Analytics