基本功能:输入一个月份,给出2019年这个月的日历,日历要求每行显示7列,对应星期一到星期日;
扩展功能:输入一个月份,同时输出该月起始的两个月的日历,要求两个月的日历水平排列而非上下排列。
import java.util.*;
public class program7 {
public static void main(String []args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Please enter the month here: ");
int month = scan.nextInt();
int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};
int i=0,totalDays=0 ;
while (i<(month-1)) {
totalDays = totalDays + days[i];
i++;
}
System.out.println(totalDays);//DELETE
int totaldays = totalDays+2;
System.out.println(" "+ month +"月"+" "+(month+1)+"月");
System.out.println("日\t一\t二\t三\t四\t五\t六\t\t日\t一\t二\t三\t四\t五\t六");
int finaldays = totaldays+days[i];
//*********************************************************
for (int n =0;n<totaldays%7;n++)
{
System.out.print(" \t");
}
for (int a =1;a<=7-totaldays%7;a++)
{
System.out.print(a + "\t");
}
System.out.print(" \t");
for (int b =0;b<finaldays%7;b++)
{
System.out.print(" \t");
}
for (int c =1;c<=7-finaldays%7;c++)
{
System.out.print(c + "\t");
}
//**********************************************************
System.out.println();
int e=(7-finaldays%7)+1;
for(int d=(7-totaldays%7)+1;d<=days[month-1];d++)
{
System.out.print(d+" \t");
if((d-(7-totaldays%7))%7==0)
{
System.out.print("\t");
//**************************************************
while(e<=days[month])
{
System.out.print(e + " \t");
int f =e;
e++;
if((f-(7-finaldays%7))%7==0||f==days[month])
{ System.out.println();
break;
}
}
}
if(d==days[month-1])
{for(int g=0;g<=7-finaldays%7;g++)
{System.out.print("\t");}
while (e<=days[month])
{
System.out.print(e+" \t");
int k = e;
e++;
if((k-(7-finaldays%7))%7==0)
{
System.out.print("\n\t\t\t\t\t\t\t\t");
}
}
}
}
}
}