用JAVA编一个万年历,有谁能帮忙写个代码?

 我来答
匿名用户
2013-08-19
展开全部
这是我自己写的,绝对原版;;;import javax.swing.JOptionPane;
class Calendar
{
public int year;
public int month;
public int alldays;//所有的天数;
public int weekDay;//一月当中的第一天是星期几;
public int monthDays;//每月的天数
public boolean isRn;//判断是否闰年
public Calendar()
{
do
{
String Year=JOptionPane.showInputDialog("请输入年份,必须大于1900年! ");
year=Integer.parseInt(Year);
}
while(year<1900);
do
{
String Month=JOptionPane.showInputDialog("请输入月份 ,必须在1~12之间!");
month=Integer.parseInt(Month);
}
while(!(month>=1&&month<=12));
isRn=year%4==0&&year%100!=0||year%400==0;
System.out.println("\t\t "+year+"年"+month+"月的日历如下\n");
System.out.println("-------------------欢迎使用万年历-------------------\n");
}
public void getDays()
{
for(int i=1900;i<year;i++)
{
if(i%4==0&&i%100!=0||i%400==0)
alldays +=366;
else
alldays +=365;
}
for (int i=1;i<month;i++)
{
switch(i)
{
case 4:
case 6:
case 9:
case 11:
alldays +=30;
monthDays=31;
break;
case 2:
if(isRn)
{
alldays +=29;
monthDays=31;
}
else
{
alldays +=28;
monthDays=31;
}
break;
default:
alldays +=31;
if(month==2)
{
if(isRn)
monthDays=29;
else monthDays=28;
}
else if(month==8)
monthDays=31;
else
monthDays=30;
break;
}
}
if(month==1)
monthDays=31;
weekDay=(alldays+1)%7;
}
public void printCalendar()
{
System.out.println("周日\t周一\t周二\t周三\t周四\t周五\t周六");
for (int i=0;i<weekDay;i++)
{
System.out.print("\t");
}
for(int i=1;i<=monthDays;i++)
{
if(i<=9)
System.out.print(" ");
System.out.print(" "+i+"\t");
if((i+weekDay)%7==0)
{
System.out.print("\n");
}
}
}
}
public class TestCalendar
{
public static void main(String[] args)
{
Calendar cald=new Calendar();
cald.getDays();
cald.printCalendar();
}
}
匿名用户
2013-08-19
展开全部
import java.util.Scanner;
public class wannianli {
public static void main(String[] args) {
int days=0;String a;
System.out.println("**************************欢 迎 使 用 万 年 历 **************************");
Scanner in=new Scanner(System.in);
do{System.out.println("请选择年份");<br> int year=in.nextInt();<br> System.out.println("请选择月份");<br> int mon=in.nextInt();<br> boolean bool=true; bool=mon==0;<br> do{<br> int niansum=0;for(int i=1900;i<year;i++){<br>if((i%4==0&&i%100!=0)||i%400==0){niansum=niansum+366;}
else{niansum=niansum+365;}}
int sumdays=0;int zonghe;for(int i=1;i<=mon;i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;break;
case 2:
if((year%4==0&&year%100!=0)||year%400==0){days=29;<br> }else {days=28;}
break;default:days=30;}
if(i<mon){sumdays=sumdays+days;}}
zonghe=sumdays+niansum;
int weekday=1+(zonghe%7);if(weekday==7){
weekday=0;}

if(mon!=0){
System.out.println("\n\n"+mon+"月");
System.out.println("\n\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for (int i=1;i<=weekday;i++){System.out.print("\t");}
for (int i=1;i<=days;i++){System.out.print(i+"\t");<br> if (weekday%7==6){System.out.print("\n");}weekday++;}}
mon++;}

while(mon<13&&bool);
System.out.println("\n\n是否继续,是按Y按任意键退出");
a=in.next();
}while(a.equals("y"));
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-19
展开全部
我给你一个现成的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式