黑马程序员技术交流社区
标题:
一个万年历的编程,个人思维而已,欢迎大家前来踢馆!!
[打印本页]
作者:
貂裘换酒
时间:
2016-6-26 09:36
标题:
一个万年历的编程,个人思维而已,欢迎大家前来踢馆!!
/**
* 需求:编写一个万年历
* 分析:其实记住小学老师教的口诀就可以了
* 一三五七八十腊,四六九冬三十天,
* 平年二月二十八,闰年二月二十九,
* 平年三百六十五,闰年三百六十六。
* 注解:腊月也就是十二月,冬月也就是十一月。
* @author Administrator
*
*/
public class Test4 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入年份:");
int nian=in.nextInt();
System.out.println("请输入月份");
int yue=in.nextInt();
int sum=0;
//计算从1900年到输入的年份有多少天
for(int year=1900;year<=(nian-1);year++){
//根据输入的年份判断是否是闰年或者是平年
if(year%4==0&&year%100!=0||year%400==0){
sum=sum+366; //闰年366天
}else{
sum=sum+365; //平年365天
}
}
//计算从一月到输入的月份有多少天
for(int month=1;month<=(yue-1);month++){
if(month==2){
if(nian%4==0&&nian%100!=0||nian%400==0){
sum+=29; //闰年二月29
}else {
sum+=28; //平年二月28
}
}else {
//4 6 9 冬(11)三十天
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31; //1 3 5 7 9 10 腊(12)三十一天
}
}
}
sum=sum+1; //从每月的1号开始排列
int weekday=sum%7; //一个星期七天
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=weekday;i++){
System.out.print("\t");
}
for(int i=1;i<=30;i++){
if(sum%7==6){ //每到周六换行显示
System.out.print(i+"\n");
}else {
System.out.print(i+"\t");
}
sum++;
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2