java万年历设计源码(附截图)

时间:2024.3.31

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.table.DefaultTableModel;

import java.io.*;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.Locale;

import java.util.TimeZone;

public class h_main1 extends JFrame implements ActionListener, MouseListener {

  private Calendar cld = Calendar.getInstance();//获取一个Calendar类的实例对象

  private String[] astr = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };

  private DefaultTableModel dtm = new DefaultTableModel(null, astr);

  private JTable table = new JTable(dtm);

  private JScrollPane sp = new JScrollPane(table);

  private JButton bLastYear = new JButton("上一年");

  private JButton bNextYear = new JButton("下一年");

  private JButton bLastMonth = new JButton("上月");

  private JButton bNextMonth = new JButton("下月");

  private JButton bAddClock = new JButton("确定");

  private JPanel p1 = new JPanel(); // 装入控制日期的按钮模块

  private JPanel p2 = new JPanel(new GridLayout(3,2));

  private JPanel p3 = new JPanel(new BorderLayout());

  private JPanel p4 = new JPanel(new GridLayout(2,1));

  private JPanel p5 = new JPanel(new BorderLayout());

    private JPanel p6 = new JPanel(new GridLayout(2,2));

    private JPanel p7 = new JPanel(new GridLayout(2,1));

    private JPanel p8 = new JPanel(new BorderLayout());

   

    private JComboBox timeBox = new JComboBox(TimeZone.getAvailableIDs());//对所有支持时区进行迭代,获取所有的id;

  

  private JTextField jtfYear = new JTextField(5);// jtfYeaar年份显示输入框

  private JTextField jtfMonth = new JTextField(2);// jtfMouth月份显示输入框

  private JTextField timeField=new JTextField();

  private JTextField h1=new JTextField(5);

  private JTextField m1=new JTextField(5);

  private static JTextArea jta = new JTextArea(10,5);

  private JScrollPane jsp = new JScrollPane(jta);

  private  JTextArea jta1 = new JTextArea(5,4);

  private JScrollPane jsp1 = new JScrollPane(jta1);

 

  private JLabel l = new JLabel("你可以向年份输入框中输入年份,提高查询效率");

  private JLabel lt = new JLabel();

  private JLabel ld = new JLabel();

  private JLabel ts=new JLabel("请在右边下拉菜单选择你要选择的城市");

  private JLabel clock= new JLabel("闹钟");

  private JLabel notice= new JLabel("备忘录");

  private JLabel hour = new JLabel("小时");

  private JLabel minute= new JLabel("分钟");

  private JLabel lu = new JLabel("农历和节气");

  private JLabel null1=new JLabel();

  private int lastTime;

  private String localTime = null;

  private String s = null;

  private SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy年MM月dd日  hh时mm分ss秒");

  public h_main1() {

         super("My Calender");// 框架命名

         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 窗口关闭函数

         this.getContentPane().setLayout(new BorderLayout(5, 5));

         jta.setLineWrap(true);// 长度大于分配长度时候则换行

         table.setGridColor(Color.GRAY);// 星期之间的网格线是灰色的

         table.setColumnSelectionAllowed(true);// 将table中的列设置为可选择的

         table.setSelectionBackground(Color.GRAY);// 当选定某一天时背景颜色为黑色

         table.setSelectionForeground(Color.GREEN);

         table.setBackground(new Color(184,207, 229));// 日期显示表格为浅蓝色

         table.setFont(new Font("黑体", Font.BOLD, 24));// 日期数字字体格式

         table.setRowHeight(30);// 表格的高度

         table.addMouseListener(this); // 鼠标监听器

         jtfYear.addActionListener(this);// 可输入年份的文本框

         // 为各个按钮添加监听函数

         bLastYear.addActionListener(this);

         bNextYear.addActionListener(this);

         bLastMonth.addActionListener(this);

         bNextMonth.addActionListener(this);

         bAddClock.addActionListener(this);

         timeBox.addItemListener(new TimeSelectedChangedListener());

         // 将按钮添加到Jpane上

         p1.add(bLastYear);

         p1.add(jtfYear);// 年份输入文本框

         p1.add(bNextYear);

         p1.add(bLastMonth);

         p1.add(jtfMonth);

         p1.add(bNextMonth);

        

         p2.add(clock);

         p2.add(bAddClock);

         p2.add(hour);

         p2.add(h1);

         p2.add(minute);

         p2.add(m1);

        

         p3.add(jsp, BorderLayout.SOUTH);

         p3.add(lu,BorderLayout.CENTER);

         p3.add(ld, BorderLayout.NORTH);

         p4.add(l);

         p4.add(lt);

        

         p5.add(p4, BorderLayout.SOUTH);

         p5.add(sp, BorderLayout.CENTER);

         p5.add(p1, BorderLayout.NORTH);

        

         p6.add(ts);

         p6.add(timeBox);

         p6.add(null1);

         p6.add(timeField);

        

         p7.add(notice);

         p7.add(jsp1);

        

         p8.add(p2,BorderLayout.CENTER);

         p8.add(p7,BorderLayout.SOUTH);

        

         this.getContentPane().add(p3, BorderLayout.EAST);

         this.getContentPane().add(p5, BorderLayout.CENTER);

         this.getContentPane().add(p6,BorderLayout.SOUTH);

         this.getContentPane().add(p8,BorderLayout.WEST);

         String[] strDate = DateFormat.getDateInstance().format(new Date())

                       .split("-");// 获取日期

         cld.set(Integer.parseInt(strDate[0]), Integer.parseInt(strDate[1]) - 1,0);

         showCalendar(Integer.parseInt(strDate[0]),

                       Integer.parseInt(strDate[1]), cld);

         jtfMonth.setEditable(false);// 设置月份文本框为不可编辑

         jtfYear.setText(strDate[0]);

         jtfMonth.setText(strDate[1]);

         this.showTextArea(strDate[2]);

         ld.setFont(new Font("新宋体", Font.BOLD, 24));

         new Timer(lt).start();

         new TimeThread().start();

         this.setBounds(200, 200, 700, 350);

         this.setResizable(false);

         this.setVisible(true);

  }

   public void showCalendar(int localYear, int localMonth, Calendar cld)

      {

          int Days = getDaysOfMonth(localYear, localMonth) + cld.get(Calendar.DAY_OF_WEEK) -2;

          Object [] ai = new Object[7];

          lastTime = 0;

          for (int i = cld.get(Calendar.DAY_OF_WEEK)-1; i <= Days; i++)

          {

              ai[i%7] = String.valueOf(i-(cld.get(Calendar.DAY_OF_WEEK)-2));

              if (i%7 == 6)

              {

                  dtm.addRow(ai);

                  ai = new Object[7];

                  lastTime++;

              }

          }

          dtm.addRow(ai);

      }

  public  int getDaysOfMonth(int Year, int Month) {

         if(Month==1||Month==3||Month==5||Month==7||Month==8||Month==10||Month==12)

         {

         return 31;

         }

         if(Month==4||Month==6||Month==9||Month==11)

         {

         return 30;     

         }

         if(Year%4==0&&Year%100!=0||Year%400==0)//闰年

         {

                return 29;

         }

         else {

                return 28;

         }

        

  }

    public void actionPerformed(ActionEvent e)

      {

          if(e.getSource() == jtfYear || e.getSource() == bLastYear || e.getSource() == bNextYear ||

                  e.getSource() == bLastMonth || e.getSource() == bNextMonth||e.getSource()==bAddClock)

          {

              int m, y;

              try//控制输入的年份正确,异常控制

              {

               if (jtfYear.getText().length() != 4)

                  {

                      throw new NumberFormatException();

                  }

                  y = Integer.parseInt(jtfYear.getText());

                  m = Integer.parseInt(jtfMonth.getText());

              }

              catch (NumberFormatException ex)

              {

                  JOptionPane.showMessageDialog(this, "请输入4位0-9的数字!", "年份有误", JOptionPane.ERROR_MESSAGE);

                  return;

              }

              ld.setText("没有选择日期");

              for (int i = 0; i < lastTime+1; i++){ dtm.removeRow(0);}

              if(e.getSource() == bLastYear){ jtfYear.setText(String.valueOf(--y)); }

              if(e.getSource() == bNextYear){jtfYear.setText(String.valueOf(++y)); }

              if(e.getSource() == bLastMonth)

              {

                  if(m == 1)

                  {

                      jtfYear.setText(String.valueOf(--y));

                      m = 12;

                      jtfMonth.setText(String.valueOf(m));

                  }

                  else

                  {

                      jtfMonth.setText(String.valueOf(--m));

                  }

              }

              if(e.getSource() == bNextMonth)

              {

                  if(m == 12)

                  {

                      jtfYear.setText(String.valueOf(++y));

                      m = 1;

                      jtfMonth.setText(String.valueOf(m));

                  }

                  else

                  {

                      jtfMonth.setText(String.valueOf(++m));

                  }

              }

              cld.set(y, m-1, 0);

              showCalendar(y, m, cld);

          }

          if(e.getSource()==bAddClock){

               try{

               Clock clock=new Clock();

               clock.start();

               if(Integer.parseInt(h1.getText())<0||Integer.parseInt(h1.getText())>23||

                                     Integer.parseInt(m1.getText())<0||Integer.parseInt(m1.getText())>59)

               {

                      throw(new Exception());

               }

          }

               catch(Exception ex){

                       JOptionPane.showMessageDialog(this, "时数应该为0——23,分钟数应该为0——59", "时间有误", JOptionPane.ERROR_MESSAGE);

               }

      }

         

      }

      public void mouseClicked(MouseEvent e)

      {

          jta.setText(null);

          int r = table.getSelectedRow();

          int c = table.getSelectedColumn();

          if (table.getValueAt(r,c) == null)

          {

              ld.setText("没有选择日期");

          }

          else

          {

              this.showTextArea(table.getValueAt(r,c));           

          }

      }

  private void showTextArea(Object selected)

  {        //在这里将公历化为农历

         ld.setText(jtfYear.getText()+"年"+jtfMonth.getText()+"月"+selected+"日");

        

        

         }

 

          

  public static void main(String[] args)

  {

         JFrame.setDefaultLookAndFeelDecorated(true);

         JDialog.setDefaultLookAndFeelDecorated(true);

         new h_main1();

      jta.setText(today());

  }

   private void updateTimeText(String timeZoneId) {

          if(timeZoneId != null){

                TimeZone timeZone = TimeZone.getTimeZone(timeZoneId);

          dateFormat.setTimeZone(timeZone);

          Calendar calendar = Calendar.getInstance();

          calendar.setTimeZone(timeZone);

          timeField.setText(dateFormat.format(calendar.getTime()));

                }else{

                       timeField.setText(null);

                }

      }

      private class TimeSelectedChangedListener implements ItemListener {

          public void itemStateChanged(ItemEvent e) {

              if (e.getStateChange()==ItemEvent.SELECTED) {

                  if (e.getItem() instanceof String) {

                      s = e.getItem().toString();

                  }

              }

          }

      }

         private class TimeThread extends Thread{

                public void run(){

                       while(true){

                              updateTimeText(s);

                              try{

                                     Thread.sleep(100);

                              }catch(InterruptedException e){

                                     e.printStackTrace();

                              }

                       }

                }

         }

     

  class Clock extends Thread //闹钟线程

  {  

         public void run(){

         while(true){

                Calendar now=Calendar.getInstance();

                int h=now.get(Calendar.HOUR_OF_DAY);//获取小时

                int mi=now.get(Calendar.MINUTE);//获取分钟

                int s=now.get(Calendar.SECOND);//获取秒钟

                int ss=h*3600+mi*60+s;

                if(ss>(Integer.parseInt(h1.getText())*3600+Integer.parseInt(m1.getText())*60+0)

                         &&ss<Integer.parseInt(h1.getText())*3600+(Integer.parseInt(m1.getText()+5)*60+0))

                {

                       jta1.setText("闹钟启动");

                }

                else{

                       jta1.setText("没有正在提示的闹钟");

                }

         }

    }

  }

 

  class Timer extends Thread //显示系统时间

  {

         private JLabel lt;

         private SimpleDateFormat fy = new SimpleDateFormat("yyyy.MM.dd G 'at' HH:mm:ss z"); 

         private boolean b=true;

        

         public Timer(JLabel lt)

         {

                this.lt=lt;

         }

         public void run()

         {

                while(true){

                try{

                      

                              lt.setText(fy.format(new Date()));

               

                       this.sleep(1000);

               

                }

                catch(InterruptedException ex)

                {

                       ex.printStackTrace();

                }

                }

         }    

  }

          final private static long[] lunarInfo = new long[] { 0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554,

            0x056a0, 0x09ad0, 0x055d2, 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0,

            0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566,

            0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550,

            0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5d0,

            0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263,

            0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0,

            0x195a6, 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5,

            0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960, 0x0d954, 0x0d4a0,

            0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9,

            0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0,

            0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520,

            0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0 };

          final private static int[] year20 = new int[] { 1, 4, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1 };

          final private static int[] year19 = new int[] { 0, 3, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 };

          final private static int[] year2000 = new int[] { 0, 3, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1 };

          public final static String[] nStr1 = new String[] { "", "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一",

            "十二" };

          private final static String[] Gan = new String[] { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };

          private final static String[] Zhi = new String[] { "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" };

          private final static String[] Animals = new String[] { "鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪" };

          private final static String[] solarTerm = new String[] { "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏",

            "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至" };

          private final static String[] sFtv = new String[] { "0101*元旦", "0214 情人节", "0308 妇女节", "0312 植树节", "0315 消费者权益日",

            "0401 愚人节", "0501 劳动节", "0504 青年节", "0512 护士节", "0601 儿童节", "0701 建党节", "0801 建军节", "0808 父亲节",

            "0909 毛泽东逝世纪念", "0910 教师节", "0928 孔子诞辰", "1001*国庆节", "1006 老人节", "1024 联合国日", "1112 孙中山诞辰", "1220 澳门回归",

            "1225 圣诞节", "1226 毛泽东诞辰" };

          private final static String[] lFtv = new String[] { "0101*农历春节", "0115 元宵节", "0505 端午节", "0707 七夕情人节", "0815 中秋节",

            "0909 重阳节", "1208 腊八节", "1224 小年", "0100*除夕" };

          /**

           * 传回农历 y年的总天数

           *

           * @param y

           * @return

           */

          final private static int lYearDays(int y) {

           int i, sum = 348;

           for (i = 0x8000; i > 0x8; i >>= 1) {

            if ((lunarInfo[y - 1900] & i) != 0)

             sum += 1;

           }

           return (sum + leapDays(y));

          }

          /**

           * 传回农历 y年闰月的天数

           *

           * @param y

           * @return

           */

          final private static int leapDays(int y) {

           if (leapMonth(y) != 0) {

            if ((lunarInfo[y - 1900] & 0x10000) != 0)

             return 30;

            else

             return 29;

           } else

            return 0;

          }

          /**

           * 传回农历 y年闰哪个月 1-12 , 没闰传回 0

           *

           * @param y

           * @return

           */

          final private static int leapMonth(int y) {

           return (int) (lunarInfo[y - 1900] & 0xf);

          }

          /**

           * 传回农历 y年m月的总天数

           *

           * @param y

           * @param m

           * @return

           */

          final private static int monthDays(int y, int m) {

           if ((lunarInfo[y - 1900] & (0x10000 >> m)) == 0)

            return 29;

           else

            return 30;

          }

          /**

           * 传回农历 y年的生肖

           *

           * @param y

           * @return

           */

          final public static String AnimalsYear(int y) {

           return Animals[(y - 4) % 12];

          }

          /**

           * 传入 月日的offset 传回干支,0=甲子

           *

           * @param num

           * @return

           */

          final private static String cyclicalm(int num) {

           return (Gan[num % 10] + Zhi[num % 12]);

          }

          /**

           * 传入 offset 传回干支, 0=甲子

           *

           * @param y

           * @return

           */

          final public static String cyclical(int y) {

           int num = y - 1900 + 36;

           return (cyclicalm(num));

          }

          /**

           * 传出农历.year0 .month1 .day2 .yearCyl3 .monCyl4 .dayCyl5 .isLeap6

           *

           * @param y

           * @param m

           * @return

           */

          final private long[] Lunar(int y, int m) {

           long[] nongDate = new long[7];

           int i = 0, temp = 0, leap = 0;

             Date baseDate = new GregorianCalendar(1900 + 1900, 1, 31).getTime();

           Date objDate = new GregorianCalendar(y + 1900, m, 1).getTime();

           long offset = (objDate.getTime() - baseDate.getTime()) / 86400000L;

           if (y < 2000)

            offset += year19[m - 1];

           if (y > 2000)

            offset += year20[m - 1];

           if (y == 2000)

            offset += year2000[m - 1];

           nongDate[5] = offset + 40;

           nongDate[4] = 14;

           for (i = 1900; i < 20## && offset > 0; i++) {

            temp = lYearDays(i);

            offset -= temp;

            nongDate[4] += 12;

           }

           if (offset < 0) {

            offset += temp;

            i--;

            nongDate[4] -= 12;

           }

           nongDate[0] = i;

           nongDate[3] = i - 1864;

           leap = leapMonth(i); // 闰哪个月

           nongDate[6] = 0;

           for (i = 1; i < 13 && offset > 0; i++) {

            // 闰月

            if (leap > 0 && i == (leap + 1) && nongDate[6] == 0) {

             --i;

             nongDate[6] = 1;

             temp = leapDays((int) nongDate[0]);

            } else {

             temp = monthDays((int) nongDate[0], i);

            }

            // 解除闰月

            if (nongDate[6] == 1 && i == (leap + 1))

             nongDate[6] = 0;

            offset -= temp;

            if (nongDate[6] == 0)

             nongDate[4]++;

           }

           if (offset == 0 && leap > 0 && i == leap + 1) {

            if (nongDate[6] == 1) {

             nongDate[6] = 0;

            } else {

             nongDate[6] = 1;

             --i;

             --nongDate[4];

            }

           }

           if (offset < 0) {

            offset += temp;

            --i;

            --nongDate[4];

           }

           nongDate[1] = i;

           nongDate[2] = offset + 1;

           return nongDate;

          }

          /**

           * 传出y年m月d日对应的农历.year0 .month1 .day2 .yearCyl3 .monCyl4 .dayCyl5 .isLeap6

           *

           * @param y

           * @param m

           * @param d

           * @return

           */

          final public static long[] calElement(int y, int m, int d) {

           long[] nongDate = new long[7];

           int i = 0, temp = 0, leap = 0;

           Date baseDate = new GregorianCalendar(0 + 1900, 0, 31).getTime();

           Date objDate = new GregorianCalendar(y, m - 1, d).getTime();

           long offset = (objDate.getTime() - baseDate.getTime()) / 86400000L;

           nongDate[5] = offset + 40;

           nongDate[4] = 14;

           for (i = 1900; i < 20## && offset > 0; i++) {

            temp = lYearDays(i);

            offset -= temp;

            nongDate[4] += 12;

           }

           if (offset < 0) {

            offset += temp;

            i--;

            nongDate[4] -= 12;

           }

           nongDate[0] = i;

           nongDate[3] = i - 1864;

           leap = leapMonth(i); // 闰哪个月

           nongDate[6] = 0;

           for (i = 1; i < 13 && offset > 0; i++) {

            // 闰月

            if (leap > 0 && i == (leap + 1) && nongDate[6] == 0) {

             --i;

             nongDate[6] = 1;

             temp = leapDays((int) nongDate[0]);

            } else {

             temp = monthDays((int) nongDate[0], i);

            }

            // 解除闰月

            if (nongDate[6] == 1 && i == (leap + 1))

             nongDate[6] = 0;

            offset -= temp;

            if (nongDate[6] == 0)

             nongDate[4]++;

           }

           if (offset == 0 && leap > 0 && i == leap + 1) {

            if (nongDate[6] == 1) {

             nongDate[6] = 0;

            } else {

             nongDate[6] = 1;

             --i;

             --nongDate[4];

            }

           }

           if (offset < 0) {

            offset += temp;

            --i;

            --nongDate[4];

           }

           nongDate[1] = i;

           nongDate[2] = offset + 1;

           return nongDate;

          }

          public final static String getChinaDate(int day) {

           String a = "";

           if (day == 10)

            return "初十";

           if (day == 20)

            return "二十";

           if (day == 30)

            return "三十";

           int two = (int) ((day) / 10);

           if (two == 0)

            a = "初";

           if (two == 1)

            a = "十";

           if (two == 2)

            a = "廿";

           if (two == 3)

            a = "三";

           int one = (int) (day % 10);

           switch (one) {

            case 1:

             a += "一";

             break;

            case 2:

             a += "二";

             break;

            case 3:

             a += "三";

             break;

            case 4:

             a += "四";

             break;

            case 5:

             a += "五";

             break;

            case 6:

             a += "六";

             break;

            case 7:

             a += "七";

             break;

            case 8:

             a += "八";

             break;

            case 9:

             a += "九";

             break;

           }

           return a;

          }

          public static String today() {

           Calendar today = Calendar.getInstance(Locale.SIMPLIFIED_CHINESE);

           int year = today.get(Calendar.YEAR);

           int month = today.get(Calendar.MONTH) + 1;

           int date = today.get(Calendar.DATE);

           long[] l = calElement(year, month, date);

           StringBuffer sToday = new StringBuffer();

           try {

            sToday.append(sdf.format(today.getTime()));

            sToday.append(" 农历");

            sToday.append(cyclical(year));

            sToday.append('(');

            sToday.append(AnimalsYear(year));

            sToday.append(")年");

            sToday.append(nStr1[(int) l[1]]);

            sToday.append("月");

            sToday.append(getChinaDate((int) (l[2])));

            return sToday.toString();

           } finally {

            sToday = null;

           }

          }

          private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M月d日 EEEEE");

          /**

           * 农历日历工具使用演示

           *

           * @param args

           */

        

        

 

  public void mouseEntered(MouseEvent e) {

        

  }

  public void mouseExited(MouseEvent e) {

               

  }

  public void mousePressed(MouseEvent e) {

        

  }

  public void mouseReleased(MouseEvent e) {

  }    

}

更多相关推荐:
Java课程设计报告

安阳工学院计算机学院JAVA课程设计报告蜘蛛纸牌游戏专业班级09级网络工程2班学生姓名李瑞琳学生学号20xx03060016小组成员司慧晓郑亚楠司小婷杨达允指导教师姓名宋强目录1选题目的与系统概述32系统可行性...

Java项目设计报告

分类号密级学号Java项目报告学生信息管理系统作者姓名所在系部专业指导教师20xx年06月27日摘要现代社会随着科技的发展如果依然采用人工管理庞大的数据库是一项繁重枯燥的工作无论是数据录入查询还是...

java程序设计报告---设计一个计算器

课程设计课程设计目的设计一个基于Swing的计算器应用程序完成普通的算术运算课程设计要求1设计的计算器是基于Swing的可以完成加减乘除和取余运算2增加计算器的日期计算功能能够计算两个日期之间相距的天数要判断键...

Java课程设计报告模板

Java程序设计课程设计报告20xx20xx年度第1学期Hannio塔专业学生姓名班级学号指导教师完成日期计算机科学技术网络工程马千里B计算机1021010704213徐森20xx年1月8日Hannoi塔目录目...

Java QQ设计报告

即时通讯系统设计淮信QQ一人员组成及组员分工1人员组成张圣筛赵华祥李军朱稼霖2组员分工1框架的构建赵华祥此模块包括CientMainServerMain的编写及其启动流程ClientProcessorServe...

计算器设计的java课程设计报告

华东交通大学课程设计华东交通大学课程设计课程设计题目计算器设计课程题目年级专业学号姓名组员指导教师Java程序设计信息一班1华东交通大学课程设计课程设计论文任务书基础学院信息与计算科学专业20xx1班一课程设计...

java计算器设计报告

摘要本计算器是由java语言所编程设计的标准计算器可以进行十进制下的四则运算加减乘除开平方求余求倒数还可以实现二进制与十进制之间的转换通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法以便...

制作一个文本编辑器 java课程设计报告

封面Java语言程序设计课程设计报告设计题目制作一个文本编辑器分院电信分院班级姓名学号指导教师黄建华实验地点三教机六课设时间20xx122020xx1225二OO九年十二月二十五日Java语言程序设计课程设计报...

java课程设计++计算器[1]

JAVA程序设计期末结课大作业姓名张可新学号20xx3259班级信工1202题目java课程设计计算器成绩汇总第1页目录一课程设计任务及要求3二需求分析3三设计思路3四详细设计4五运行调试与分析讨论9六设计体会...

java课程设计报告_简单图形界面计算器的设计

Java课程设计简单图形界面计算器的设计课程名称Java程序设计选题名称简单图形界面计算器的设计专业班级姓名学号指导教师简单图形界面计算器的设计1一设计任务与目标本次java程序设计我的设计任务是设计一个图形界...

Java课程设计(计算器)

课程设计大作业报告课程名称java语言程序设计设计题目计算器院系班级计算机科学与技术设计者xx学号xx指导教师xx设计时间昆明学院昆明学院课程设计大作业任务书课程设计大作业报告1课程设计介绍11课程设计内容设计...

java 计算器

实习报告课程名称实习题目专业班级学号学生姓名实习成绩指导教师20xx年1月北京邮电大学世纪学院实习报告前言本计算器可以进行简单的四则运算加减乘除但仅限于十进制下还可以进行八进制十进制十六进制之间的相互转换八进制...

java设计报告(28篇)