求一个周末的计算公式,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