用java语言编写万年历

请帮帮忙

30 浏览 2 回复
  case   int   days   break   str  

回复

    给你一个现成的,我自己写的。
    import java.awt.*;
    import java.util.*;
    import javax.swing.*;
    import java.awt.event.*;
    public class WanNianLi extends JFrame implements ActionListener {
    private static int year,month,days;
    private JButton[] btn=new JButton[days];
    WanNianLi() {
    super("万年历");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    GridLayout bl=new GridLayout(5,7);
    JPanel pane=new JPanel();
    pane.setLayout(bl);
    for (int i=0;i<days;i++) {
    int temp=i+1;
    btn[i]=new JButton(""+temp);
    btn[i].addActionListener(this);
    pane.add(btn[i]);
    }
    setContentPane(pane);
    pack();
    setLookAndFeel();
    setVisible(true);
    }
    public static void main(String[] args) {
    if (args.length>0)
    year=Integer.parseInt(args[0]);
    else
    year=1982;
    if (args.length>1)
    month=Integer.parseInt(args[1]);
    else
    month=1;
    GetDays gd=new GetDays(year,month);
    days=gd.getDays();
    new WanNianLi();
    }
    public void actionPerformed(ActionEvent evt) {
    Object src=evt.getSource();
    for (int i=0;i<days;i++)
    if (src==btn[i]) {
    int day=i+1;
    GetWeekday gw=new GetWeekday(year,month,day);
    String str="";
    switch (gw.getWeekday()) {
    case 1:
    str="天";
    break;
    case 2:
    str="一";
    break;
    case 3:
    str="二";
    break;
    case 4:
    str="三";
    break;
    case 5:
    str="四";
    break;
    case 6:
    str="五";
    break;
    case 7:
    str="六";
    break;
    }
    setTitle(year+"年"+month+"月"+day+"日"+"星期"+str);
    repaint();
    }
    }
    private void setLookAndFeel() {
    try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    SwingUtilities.updateComponentTreeUI(this);
    }catch(Exception e){
    System.out.print(e.toString());
    }
    }
    }
    //////////////
    //获取星期几//
    //////////////
    class GetWeekday {
    private Calendar cal=Calendar.getInstance();
    private static int weekday;
    public int getWeekday() {
    return weekday;
    }
    GetWeekday(int y,int m,int d) {
    cal.clear();
    cal.set(Calendar.YEAR,y);
    cal.set(Calendar.MONTH,m-1);
    cal.set(Calendar.DAY_OF_MONTH,d);
    weekday=cal.get(Calendar.DAY_OF_WEEK);
    }
    }
    ////////////////////
    //获取当前月的天数//
    ////////////////////
    class GetDays {
    private static int days;
    public int getDays() {
    return days;
    }
    GetDays(int y,int m) {
    GregorianCalendar gc=new GregorianCalendar();
    switch (m) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
    days=31;
    break;
    case 4:
    case 6:
    case 9:
    case 11:
    days=30;
    break;
    case 2:
    if (gc.isLeapYear(y))
    days=29;
    else
    days=28;
    break;
    }
    }
    }

    崔刚

    打上万年历搜一下,看源代码。

    邱淑

相关信息

java 万年历 源码

求源码

32 浏览 1 回复   case   break   putout   system   out  

求编C++程序

1.求1!+2!+3!+...8!的值。 2.编写一个程序,输出其各因子的连乘形式,如输入12,则输出12=1\*2\*2\*3。 3.编写一个程序,输入年,月,打印出该年份该月的天数。 请在//在语句后注解 谢谢谢谢谢谢

19 浏览 2 回复   case   int   days   break   year  

vc++ switch case问题 比较初级的

我cin>>c 然后switch (c) 这个时候我得设定是如果c是1~5的数字(都有case)就正常运行 如果不是就重新输入 这个时候如果输入6 或者123 就正常显示“错误 重新输入” 然后输入就行了。 但是如果输入的是r alsh 之类的 程序就不停显示“错误 重新输入”无数遍 这是为什么? 如何解决??写写诸位大虾了0.0 void main...

23 浏览 3 回复   right   cout   case   endl   输入  

select case 语句里 可以再套select case 语句吗?

麻烦大家了

28 浏览 4 回复   case   select   print   end   语句  

求贪食蛇 设计思路... 重在思路 最好是java 的

求贪食蛇 设计思路... 重在思路 最好是java 的 百度知道上也有不少贪食物蛇的java 代码,但是我很想知道设计思路 这个程序貌似要用到线程,希望有高手帮忙出主意啊!~~ 不要代码,只要思路,请用心解答问题啊

61 浏览 2 回复   this   new   color   temp   int