JAVA输入月份求当月第一天是星期几?

题目是ACCP5.0JAVA书上第322页的题目:阶段4:计算输入月份的第一天是星期几?书上给的提示:1、以1900年1月1日星期一为基准进行推算:星期几=1+天数差%7... 题目是 ACCP 5.0 JAVA书上第322页的题目:
阶段4:
计算输入月份的第一天是星期几?

书上给的提示:
1、以1900年1月1日星期一为基准进行推算:星期几=1+天数差%7。
2、周一~周六使用数字1~6表示,周日:使用数字0表示。

我不明白天数差如何算得。书上给的提示我看不明白。我已将1900天至今的天数求出来。代码如下:
import java.util.Scanner;
class jd4 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int i;
int year;
int day=0;
int month=0;
int week;
year=input.nextInt();
for(i=1900;i<=year;i++){
if((i%4==0 && i%100!=0)|| i%400==0){
day=day+366;
}else{
day=day+365;
}
}
week=1+day%7; //求星期几??
}
}

输入月份。求当月第一天是星期几?在这基础上怎么算。在线等!
展开
 我来答
匿名用户
2013-08-19
展开全部
给你一个代码吧:
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");
}
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式