java

首先,我们先来办理一个问题便是某年某月某日是星期几?这有好多方法,我就举一个方法吧,便是求某年某月某日到1900年1月1日有多少天,之后在对7取余,余几就表示星期几(余数为0表示星期天),那么下面我们就有这个方法求一下本日是星期几?演示代码如下。

2016年12月6日是星期二

把稳:闰年是能整除4,不能整除100,或者能整除400,且要知道闰年的仲春是29天。
如果这个不知道是没法算的,下面演示结果

Java小项目之日历的制作事理详解代码演示

本日是星期二

那么办理好某月某天是星期几之后,就可以了进行下一步了,首先看一下我们电脑上的日历是一个什么样的效果,以便我们来模拟做一个大略的。

电脑日历

根据图剖析一下,可以看出最上面的一排为(日一二三四五六),一输出的那天是星期六,下面就换行了输出了,日历且是从1号开始输出的,以是我们要用上面的方法算出1号是星期几,然后逐渐输出,一到当天是星期六就换行输出就可以了。

首先阐明一下变量都是什么意思year是年份,month是月份,zongtianshu是某年某月1日到1900年1月1日的总天数,xingqi便是当前星期几,sum是打算总天数的方法,daysum是打算当前月有多少天的方法。
下面我们运行一下这个程序,看一下这个月的日历。

演示效果

大家可以看出这个和这个月的日历是一样的,便是做的好丢脸,但他的事理是都演示出来了。
下附全部代码。

import java.util.Scanner;

public class Calendar3 {

public static void main(String args[]){

Scanner s=new Scanner(System.in);

System.out.println(\"大众请输入年份\公众);

int year=s.nextInt();

System.out.println(\公众请输入月份\"大众);

int month=s.nextInt();

int zongtianshu=sum(year,month);

int xingqi=zongtianshu%7;//打算某年某月某日是星期几的方法

System.out.println(\公众日\t一\t二\t三\t四\t五\t六\"大众);

for(int i=0;i<xingqi;i++){

System.out.print(\"大众\t\公众);

}

int tianshu=Daysum(year,month);

for(int i=1;i<=tianshu;i++){

if(zongtianshu%7==6){//表示星期六

System.out.println(i);

}else{

System.out.print(i+\"大众\t\公众);

}

zongtianshu++;//总天数加1,直到加满全体月

}

}

public static int sum(int year,int month){

int sum = 0;//总天数

for(int i=1990;i<year;i++){

if(i%4==0&&i%100!=0||i%400==0){

sum=sum+36;

} else{

sum=sum+365;

}

}

for(int i=1;i<month;i++){

/ /判断今年是不是闰年

if(i==2){//2月分外

if(year%4==0&&year%100!=0||year%400==0){

sum+=29;

}else{

sum+=28;

}

}

else if(i==4||i==6||i==9||i==11){

sum+=30;

}

else{

sum+=31;

}

}

sum+=1;

return sum;//输出0就代表周日

}

public static int Daysum(int year,int month){//哪年哪月共有多少天

if(month==2){

if(year%4==0&&year%100!=0||year%400==0){

return 29;

}

else{

//不是闰年2月该当有28天

return 28;

}

}

else if(month==4||month==6||month==9||month==11){

return 30;

}

else{

return 31;

}

}

}

鲜花送给您

本人菜鸟,还在学习编程,如果文章中有缺点,希望您能指出,您的辅导是我提高的动力,欢迎评论,欢迎收藏吗,欢迎转发,欢迎关注头条号:趣IT科技。