求一个weekend的计算公式

求一个周末的计算公式,D表示日期,M表示月份,Y表示年份,最好能说明一下如果是周六和周日还有周一,计算出来分别是多少

其实,你可以换个思路,通过 Calendar 类来解决这个问题。
[code="java"]
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAY, Y); // Y 为年份
c.set(Calendar.MONTH, M); // M 为月份
c.set(Calendar.DAY_OF_MONTH, D); // D 为日
c.get(Calendar.DAY_OF_WEEK); // 根据这个结果你就可以知道是哪一天了
[/code]

没看懂你后半部分是什么意思?

但周一对应的是 0 还是 1 需要你自己注意一下的

用lss上办法,周日是1,周六是7,我最近刚用过。

[code="java"]package com.test;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Test2 {

public static void main(String[] args) throws Exception {

    String s1 = "2011-08-25 16:28:21";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    Date d2 = sdf.parse(s1);

    Calendar c = Calendar.getInstance();
    c.setTime(d2);
    int week = c.get(Calendar.DAY_OF_WEEK) - 1;
    int day = c.get(Calendar.DAY_OF_MONTH);
    int month = c.get(Calendar.MONTH) + 1;
    int year = c.get(Calendar.YEAR);
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);

    System.out.println("year:" + year+ " ");
    System.out.println("month:" + month + " ");
    System.out.println("day:" + day + " ");
    System.out.println("week:" + week+ " ");
    System.out.println("hour:" + hour+ " ");
    System.out.println("minute:" + minute+ " ");

    double date = hour + minute / 60.000;
    System.out.println("date:" + date);

    if (week == 6 || week == 0) {
        System.out.println("周末");
    } else {
        System.out.println("工作日");
    }
}

}
[/code]看看这个有问题不

[code="java"]
public int getDayOfWeek(int year, int month, int day) {
Calendar c = Calendar.getInstance();
c.set(year, month - 1, day);
return c.get(Calendar.DAY_OF_WEEK);
}
[/code]
返回的值从1到7分别代表:
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY

c.set(year, month - 1, day);
月份重0开始,所以要month - 1