黑马程序员技术交流社区
标题:
计算某一天是一年中的第几星期
[打印本页]
作者:
刘丁
时间:
2012-2-15 05:01
标题:
计算某一天是一年中的第几星期
本帖最后由 刘丁 于 2012-2-15 18:21 编辑
如何计算某一天是一年中的第几星期。 请高手贴出详细代码 。。
作者:
黄秋
时间:
2012-2-15 07:28
import java.util.*;
import java.text.SimpleDateFormat;
class Test
{
public static void main(String[] args)
{
System.out.println(getWeek("2012-1-18"));
}
public static int getWeek(String date){
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY); // 设置每周的第一天为星期一
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 每周从周一开始
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try{
cal.setTime(format.parse(date));
} catch (Exception e){
e.printStackTrace();
}
int week = cal.get(Calendar.WEEK_OF_YEAR);
return week;
}
}
复制代码
看需要,可取消cal.setFirstDayOfWeek,cal.set 这两句。
作者:
马欢
时间:
2012-2-15 09:37
function week_day($week,$day,$year){
//第一步算出第几周一共有多少天
$first_week = date('w',strtotime($year.'-01-01')) == 0 ? 7 : date('w',strtotime($year.'-01-01'));
$total_days = $week == 1 ? $day : (($week-2)*7+$day+(7-$first_week)+1);
//递减每个月天数
for($i=1;$i<=12;$i++){
$month_num = date('t',strtotime($year.'-'.($i>9 ? $i : '0'.$i).'-01'));
//$total_days = $total_days > $month_num ? ($total_days-$month_num) : $total_days;
if($total_days>$month_num){
$total_days = $total_days-$month_num;
}else{
break;
}
}
return $year.'-'.($i>9 ? $i : '0'.$i).'-'.($total_days > 9 ? $total_days : '0'.$total_days);
}
function mathweek( $today )
{
//一年开始是星期几
$first_week = date('w',strtotime(date('Y',strtotime($today)).'-01-01')) == 0 ? 7 : date('w',strtotime(date('Y',strtotime($today)).'-01-01'));
//算出本年到$today一共有几天$total_days
// $month = date('m',strtotime($today));
// $day = date('d',strtotime($today));
// $year = date('Y',strtotime($today));
// $total_days = 0;
// for($i=1;$i<intval($month);$i++){//echo '第'.$i.'个月有'.date('t',strtotime("$year-$i-01")).'天<br>';
// $total_days += date('t',strtotime("$year-$i-01"));
// }
// $total_days = $total_days+intval($day);
$total_days = date('z',strtotime($today));
//除去第一周不规则周
$total_days = $total_days-(7-$first_week);
if($total_days%7==0){
$days = $total_days/7+1;
}else{
$days = ceil($total_days/7)+1;
}
return $days;
}
作者:
钟保罗
时间:
2012-2-15 14:57
public class Week {
public static void main(String[] args){
int number = weekNumber(2012,2,15);
System.out.println(number);
}
//在weekNumber方法中传进年月日
public static int weekNumber(int year,int month,int date){
int mont = month-1;//因为在Calendar类中月份是从0月开始计算,所以按我们平时的减去1
Calendar calendar = Calendar.getInstance();//获得一个日历
calendar.set(year, mont, date);//设置日历的年月日
int number = calendar.get(Calendar.WEEK_OF_YEAR);//段根Calendar类的WEEK_OF_YEAR字段获得设置日历中的日子的星期数
return number;//返回星期数
}
}
复制代码
作者:
秦碧
时间:
2012-2-15 15:00
public class Week {
public static void main(String[] args) throws IOException {
//输入格式为2012-12-21
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
String str=bufr.readLine();
String[] strs=str.split("-");
int year=new Integer(strs[0]);
int month=new Integer(strs[1]);
int data=new Integer(strs[2]);
Calendar calendar=Calendar.getInstance();
calendar.set(year, month-1, data);
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
}
}
作者:
靖美专
时间:
2012-2-15 15:27
本帖最后由 靖美专 于 2012-2-15 15:27 编辑
/**
* 根据日期计算属于第几周
* @param date 格式 yyyy-MM-dd
* @throws ParseException
*/
public static int getWeekOfYear(String date){
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY); // 设置每周的第一天为星期一
//cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 每周从周一开始
cal.setMinimalDaysInFirstWeek(1); // 设置每周最少为1天
cal.setTime(df.parse(date));
return cal.get(Calendar.WEEK_OF_YEAR);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2