黑马程序员技术交流社区
标题:
稍稍的发一波小日历。求简化!!
[打印本页]
作者:
刘小小五
时间:
2015-9-29 23:51
标题:
稍稍的发一波小日历。求简化!!
import java.util.Scanner;
class year_0 {
/*
实现日历
年月
1900年一月的日历如下:
日 一 二 三 四 五 六
1 2 3 4 5
6 7 8 9 10 11
12 13 14 15 16 17
18 19 20 21 22 23
24 25 26 27 28 29
30 31
定义功能点:显示某个月份的日历
首先得明确该月份有多少天。还有一号对应的星期。判断闰年和平年
*/
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println(" 欢迎来到日历系统");
System.out.println(" ————————————");
while (true) {
System.out.println(" 请输入你所想知道的年月格式如199001");
int yearmonth=sc.nextInt();
int year=yearmonth/100;
int month=yearmonth%100;
System.out.println("你输入的是"+year+"年"+month+"月");
daying(year,month);
System.out.println();
System.out.println(" ————————————");
System.out.println("谢谢使用!");
}
}
//定义功能 打印日历已知年 和月
public static void daying(int year ,int month){
System.out.println(" ————————————");
System.out.println("日"+"\t"+"一"+"\t"+"二"+"\t"+"三"+"\t"+"四"+"\t"+"五"+"\t"+"六");
int dayday=days(year,month);//dayday是该年月份到1900年的天数
int x=dayday%7+1;//x为星期几。也就是前面要打的空格数
for (int a=0; a<x; a++) {
System.out.print("\t");//空格
}
if (month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
for (int day=1;day<=31 ;day++) {
if ((day+x-1)%7==0) {
System.out.println();
}
System.out.print(day+"\t");
}
}
//30天的月份
if (month==4||month==6||month==9||month==11) {
for (int day=1;day<=30 ;day++) {
if ((day+x-1)%7==0) {
System.out.println();
}
System.out.print(day+"\t");
}
}
//特殊月。2月。
if(month==2){
int day2=fengyear(year);
for (int day=1;day<=day2 ;day++) {
if ((day+x-1)%7==0) {
System.out.println();
}
System.out.print(day+"\t");
}
}
}
//定义功能 区分闰年和平年 1900年28 2000年29天2012 29 2015 28
public static int fengyear(int year){
int x=0;
if (year%4!=0|(year%100==0&&year%400!=0)) {// 一定要用单或。双或不行
x=28;
}else {
x=29;
}
return x;
}
//定义一个功能 计算该年月份到1900年的天数。
//1901-1900=1 365+31+28+31+30
public static int days(int year,int month){
int sum=0;
for (int x=1900; x<year ; x++) {
sum+=(fengyear(x)+337);//一年365-28=327
}
if (month==1) return sum;
if(month==2){
sum+=31;
}
if(month==3){
sum+=(31+fengyear(year));
}
if(month==4){
sum+=(62+fengyear(year));
}
if(month==5){
sum+=(92+fengyear(year));
}
if(month==6){
sum+=(123+fengyear(year));
}
if(month==7){
sum+=(153+fengyear(year));
}
if(month==8){
sum+=(184+fengyear(year));
}
if(month==9){
sum+=(215+fengyear(year));
}
if(month==10){
sum+=(245+fengyear(year));
}
if(month==11){
sum+=(276+fengyear(year));
}
if(month==12){
sum+=(306+fengyear(year));
}
return sum;
}
}
复制代码
作者:
芝麻糊
时间:
2015-9-29 23:56
学习了 。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2