急:用java如何得到当前月的第一天是星期几?

如题所述

这个比较简单,4行代码就行

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 1);
SimpleDateFormat format = new SimpleDateFormat("E");
System.out.println("本月第一天是:" + format.format(calendar.getTime()));

如果你要得到一个数字的话就是:
calendar.get(Calendar.DAY_OF_WEEK),当然,这个结果是以星期天为第一天算出来的,如果要换成星期一开始,减1就行了

希望能帮助你。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-02-25
import java.util.Scanner; public class wnl { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 int totalDay=0; //计算总天数 int dayOfWeek; //保存当月第一天是星期几 int day=0 ; //当月的天数 int dayOfYear=0; //保存用户输入的年月之前的天数 Scanner cs=new Scanner(System.in); System.out.print("请输入年:"); int year=cs.nextInt(); System.out.print("请输入月:"); int month=cs.nextInt(); boolean bool=false; // 判断输入的年份是否是闰年备用 if(year%4==0&&year%100!=0||year%400==0){ bool=true; } // 计算出到用户输入的年份1月1日之前的总天数 for(int i=1900;i<year;i++){ if(i%4==0&&i%100!=0||i%400==0){ totalDay+=366; }else{ totalDay+=365; } } for(int i=1;i<=month;i++){ switch(i){ //根据月不同给day赋值进行计算 case 1: //同时day还会用于保存当月天数后面的输出 case 3: case 5: case 7: case 8: case 10: case 12:day=31;break; case 4: case 6: case 9: case 11:day=30;break; // 根据是否闰年来决定2月多少天 case 2:if(bool){ day=29; break; }else{ day=28; break; } //在获得输入月份之前所有天数的同时 //还获得了输入月份的天数备用 } if(i<month){ dayOfYear+=day;//把用户输入的月份之前的所有天 } //数进行加合 } //将本年的天数加在之前计算的总天数上 totalDay+=dayOfYear; // 把总天数对7取余计算出当月第一天是星期几 dayOfWeek=(1+totalDay)%7; System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"); // 输出空格 for(int i=0;i<dayOfWeek;i++){ System.out.print("\t"); } for(int i=1;i<=day;i++){ //控制每到星期6就换行 //原理为总天数加上当月天数对7取余 if((totalDay+i)%7==6){ System.out.print(i+"\n"); }else{ System.out.print(i+"\t"); } } } }

参考资料:http://wenwen.soso.com/z/q100156539.htm

第2个回答  2010-02-25
import java.util.Calendar;

public class Test
{
public static void main(String [] args)
{
String strDay = null;
/**获取日历实例**/
Calendar cld = Calendar.getInstance();
/**设置日历成当月的第一天**/
cld.set(Calendar.DAY_OF_MONTH,1);
//星期对应数字
int day = cld.get(Calendar.DAY_OF_WEEK);
//转换成相应的便于理解的星期
switch (day)
{
case 1 : strDay = "星期天";
break;
case 2 : strDay = "星期一";
break;
case 3 : strDay = "星期二";
break;
case 4 : strDay = "星期三";
break;
case 5 : strDay = "星期四";
break;
case 6 : strDay = "星期五";
break;
default : strDay = "星期六";
}
System.out.println("该月的第一天是 : "+strDay);
}
}
第3个回答  2010-02-25
public class FirstDay {
public static void main(String[] args) {
Date currTime = new Date(); // 当前日期
GregorianCalendar cale = new GregorianCalendar(); // 格里高利日历
cale.setTime(currTime); // 绑定当前日期
cale.set(Calendar.DAY_OF_MONTH, 1); // 变为本月第一天
if (cale.getFirstDayOfWeek() == Calendar.SUNDAY) { // 每周以星期日开始
System.out.println(cale.get(Calendar.DAY_OF_WEEK) - 1);
} else { // 每周以星期一开始(一般不会再有其它情况)
System.out.println(cale.get(Calendar.DAY_OF_WEEK));
}
}
}
第4个回答  2010-02-25
Calendar cal = cal.getInstance();
cal.set(Calendar.DAY_OF_MONTH,1);
int dayNum = cal.get(Calendar.DAY_OF_WEEK);

dayNum即为星期几 1为星期日 2为星期一
相似回答