(JAVA)计算任意两天之间的周数

每周要写周报,周报的标题却要加上“入职XX周”,坑爹,哪记得第几周了呀,特别是过完年更是不记得了

写一段程序吧,JAVA:

import java.util.Calendar;

public class Weeks
{
public static void main(String arg[])
{
Calendar from = Calendar.getInstance();
from.set(2010, 7, 27);
Calendar to = Calendar.getInstance();
to.set(2012, 2, 13);
System.out.print(getWeeksBetweenDates(from, to));
}

public static int getWeeksBetweenDates(Calendar dateFrom, Calendar dateTo)
{
dateFrom.setFirstDayOfWeek(Calendar.MONDAY);
dateTo.setFirstDayOfWeek(Calendar.MONDAY);

int yearFrom = dateFrom.get(Calendar.YEAR);
int yearTo = dateTo.get(Calendar.YEAR);

int weeksBetween = 0;
//the year of dateFrom
int weekFrom = dateFrom.get(Calendar.WEEK_OF_YEAR);
if(weekFrom==1&&dateFrom.get(Calendar.MONTH)==Calendar.DECEMBER)//腊月
{
dateFrom.set(yearFrom,Calendar.DECEMBER,25,23,59,59);
weeksBetween -=dateFrom.get(Calendar.WEEK_OF_YEAR);
}
weeksBetween -= weekFrom;
//years between dates
for(int i=1;i<=yearTo-yearFrom; i++)
{
Calendar _lastDay = Calendar.getInstance();
_lastDay.setFirstDayOfWeek(Calendar.MONDAY);
_lastDay.set(yearFrom+i, 11,25,23,59,59);
weeksBetween+=_lastDay.get(Calendar.WEEK_OF_YEAR);
}
//the year of dateTo
int weekTo = dateTo.get(Calendar.WEEK_OF_YEAR);
if(weekTo==1&&dateTo.get(Calendar.MONTH)==Calendar.DECEMBER)//腊月
{
dateTo.set(yearTo,Calendar.DECEMBER,25,23,59,59);
weeksBetween +=dateTo.get(Calendar.WEEK_OF_YEAR);
}
weeksBetween += weekTo;

return weeksBetween;
}
}

运行看输出就行,当然参数要自己指定了,有兴趣的同学可以自己写一个完整的有UI的程序。(以上代码借用了网上的一些算法)

转载于:https://www.cnblogs.com/yili16438/archive/2012/02/13/2348753.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值