| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1517 人关注过本帖, 1 人收藏
标题:刚学了一个月的JAVA,自己写了一个万年历的程序,大家看下,给点意见啊,谢 ...
只看楼主 加入收藏
我的青春我做主
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-29
收藏(1)
 问题点数:0 回复次数:10 
刚学了一个月的JAVA,自己写了一个万年历的程序,大家看下,给点意见啊,谢谢.
下面是代码,大家看了给点建议啊,谢谢 哦.....

import java.util.*;

public class XiaoHong
{
    public static void main(String[] args)
    {
        System.out.println("*****************欢迎使用小红的万年历****************");
        Scanner input = new Scanner(System.in);     
        int year;
        int month;
        String answer = "y";
        while (answer.equals("y"))
        {
            boolean isRn = false;
            System.out.println("请输入年份:");
            year = input.nextInt();
            System.out.println("请输入月份:");
            month = input.nextInt();
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
            {
                System.out.println(year + "\t闰年");
                isRn = true;
            }
            else
            {
                System.out.println(year + "\t平年");
                isRn = false;
            }
            while (month > 12 || month <= 0)
            {
                System.out.println("对不起,输入月份不正确!\n\n请重新输入:");
                month = input.nextInt();

            }
            int yue = 0;
            switch (month)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    System.out.println(month + "月\t共31天");
                    yue = 31;
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    System.out.println(month + "月\t共30天");
                    yue = 30;
                    break;
                case 2:
                    if (isRn && month == 2)
                    {
                        System.out.println(month + "月\t共29天");
                        yue = 29;
                    }
                    else
                    {
                        System.out.println(month + "月\t共28天");
                        yue = 28;
                    }
                    break;


            }
            int sum = 0;
            for (int i = 1900; i < year; i++)
            {
                if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
                {
                    sum = sum + 366;

                }
                else
                {
                    sum = sum + 365;
                }
            }
            for (int i = 1; i < month; i++)
            {
                if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10
                        || i == 12)
                {
                    sum = sum + 31;
                }
                else if (i == 4 || i == 6 || i == 9 || i == 11)
                {
                    sum = sum + 30;
                }
                else if (i == 2 && isRn)
                {
                    sum = sum + 29;
                }
                else
                {
                    sum = sum + 28;
                }
            }
            System.out.println(year + "年" + month + "月距离1900年1月1日有" + sum + "天");
            int firstdayofmonth;
            int num = 1 + sum % 7;
            if (num == 7)
            {
                firstdayofmonth = 0;
            }
            else
            {
                firstdayofmonth = num;
            }
            System.out.println("\n该月的第一天是星期" + firstdayofmonth);
            System.out.println("\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
            int x = sum % 7 + 1;
            if (x != 7)
            {
                for (int i = 0; i < x; i++)
                {
                    System.out.print("\t");
                }
            }
            for (int i = 1; i <= yue; i++)
            {
                int everydayweek = (x + i - 1) % 7;
                if (everydayweek == 6)
                {
                    System.out.print(i + "\n");
                }
                else
                {
                    System.out.print(i + "\t");
                }
            }
            System.out.println("\n\n是否继续y/n");
            answer = input.next();
        }
        System.out.println("\n程序结束!");

    }

}
搜索更多相关主题的帖子: 初学 
2008-07-30 15:16
一水寒烟
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-7-14
收藏
得分:0 
fef
fggggggggggg
2008-07-30 16:43
woshicl
Rank: 1
来 自:河北大学
等 级:新手上路
帖 子:13
专家分:0
注 册:2008-3-26
收藏
得分:0 
我觉得你使用面向过程的思想编的,类似与c,没有用到java的面向过程思想
2008-08-01 20:55
cxhiou
Rank: 1
等 级:新手上路
帖 子:97
专家分:0
注 册:2007-6-13
收藏
得分:0 
楼上说的是
这样写,倒不如用C编!
精髓都浪费了!
呵呵

2008-08-02 21:17
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
呵呵~~~
不错,不错.
有时间,把它改成图形界面的吧.
2008-08-02 22:33
leweslove
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-4-3
收藏
得分:0 
看了这个很无语,全部写在 main函数了。。

够毒才够美,嘿咻致死....
2008-08-05 11:41
恋轩念伊人
Rank: 5Rank: 5
来 自:湖南衡阳
等 级:贵宾
威 望:19
帖 子:643
专家分:0
注 册:2008-2-23
收藏
得分:0 
[bo][un]woshicl[/un] 在 2008-8-1 20:55 的发言:[/bo]

我觉得你使用面向过程的思想编的,类似与c,没有用到java的面向过程思想



应该是面对对象编程

我不是一个随便的人,我随便起来不是人我哦。信不?
2008-08-06 14:53
恋轩念伊人
Rank: 5Rank: 5
来 自:湖南衡阳
等 级:贵宾
威 望:19
帖 子:643
专家分:0
注 册:2008-2-23
收藏
得分:0 
[bo][un]woshicl[/un] 在 2008-8-1 20:55 的发言:[/bo]

我觉得你使用面向过程的思想编的,类似与c,没有用到java的面向过程思想



应该是面对对象编程

我不是一个随便的人,我随便起来不是人我哦。信不?
2008-08-06 14:54
我的青春我做主
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-29
收藏
得分:0 
谢谢
谢谢你的意见,我会注意的。等我修改之后再拿上给你们看啊.....
   呵呵.........
2008-08-06 21:04
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
呵呵~~`感谢我都跑到别人的帖去了.
期待中...
呵呵~~~
2008-08-06 21:40
快速回复:刚学了一个月的JAVA,自己写了一个万年历的程序,大家看下,给点意见啊 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018615 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved