日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)java → 比較綜合的陰歷和陽歷的java源程序

      比較綜合的陰歷和陽歷的java源程序

      相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:本站整理時(shí)間:2010/11/16 16:54:04字體大。A-A+

      作者:佚名點(diǎn)擊:197次評(píng)論:8次標(biāo)簽: Java

      • 類型:行業(yè)軟件大小:7.3M語言:中文 評(píng)分:10.0
      • 標(biāo)簽:
      立即下載

      /************************************
       陰歷及節(jié)日程序 2008 beta1
       免費(fèi)軟件(Free Software) 你可以無限傳播與反編譯
       該日歷有三種外觀樣式,有從1900年至2049年間的所有陰歷
       個(gè)人愛好開發(fā)  作者:朱春 Email:npuxbd@163.com
       Copyright @ 2008- All Rights Reserved
       FileName:Simple_Calendar
       **********************************/
      import java.text.*;
      import java.awt.*;
      import javax.swing.*;
      import java.awt.event.*;
      import javax.swing.border.*;
      import java.util.*;
      import javax.swing.*;
      public class Simple_Calendar extends JFrame implements ActionListener{


       public static void main(String[] args) {
        
        SwingConsole.run(new Simple_Calendar(),525,525);
       }


       public Simple_Calendar() {
        setTitle(" 陰歷及節(jié)日軟件 2008 beta1");
        setIconImage(this.getToolkit().createImage("title.gif"));
        setResizable(false);
        calendar = Calendar.getInstance();
        today = calendar.get(Calendar.DAY_OF_MONTH);
        panel_Header=initializtion_Header();
        panel_Week =initializtion_Week();
        panel_Calendar=initializtion_Calendar();
         setLayout(null);
        setBounds(185,125,0,0);
        add(panel_Header);panel_Calendar.setBounds(0 ,0  ,525 , 45);
        add(panel_Week);     panel_Week.setBounds(0 ,45 ,525 , 35);
           add(panel_Calendar);panel_Calendar.setBounds(0 ,80 ,525 , 415) ;
           initializtion_Data(calendar);
          
        
        
       }
          private  JPanel initializtion_Header(){//顯示表頭的panel
            
           JPanel panel = new JPanel();
           year_box  = new  JComboBox();
           month_box = new JComboBox();
           cross=new JRadioButton("c",false);cross.addActionListener(new LookAndFeel_Listener());
           system=new JRadioButton("s",false);system.addActionListener(new LookAndFeel_Listener());
           motif=new JRadioButton("m",false);motif.addActionListener(new LookAndFeel_Listener());
           feel_group= new ButtonGroup();
           show_help = new JButton("說 明");
           
           show_help.addActionListener(new Statement_Listener());
           
           feel_group.add(cross);feel_group.add(system);feel_group.add(motif);
           panel.setBorder(new EtchedBorder(5,Color.red,Color.BLUE));
           JLabel year_l = new JLabel("請(qǐng)您選擇年份: ",JLabel.RIGHT);
           JLabel month_l = new JLabel("月份: ",JLabel.RIGHT);
           panel.setLayout(null);
           panel.setSize(525,45);
       


           for(int i = 1900 ;i < 2050 ; i++)
              year_box.addItem(""+i);
           for(int j = 1 ; j <= 12 ;j++)
              month_box.addItem(""+j) ;
         
           year_box.setSelectedIndex(calendar.get(Calendar.YEAR)-1900);
           month_box.setSelectedIndex(calendar.get(Calendar.MONTH));
           panel.add(year_l);      year_l.setBounds(0,10,95,25);
           panel.add(year_box);  year_box.setBounds(100,10,65,25);
           panel.add(month_l);    month_l.setBounds(160,10,45,25);
           panel.add(month_box);month_box.setBounds(210,10,45,25);
           JLabel look_feel = new JLabel("外觀:",JLabel.RIGHT);
           panel.add(look_feel);look_feel.setBounds(290-38,10,38,25);
           panel.add(cross);       cross.setBounds(290,10,38,25);
           panel.add(system);     system.setBounds(325,10,32,25);
           panel.add(motif);       motif.setBounds(355,10,38,25);
           panel.add(show_help);  show_help.setBounds(400,10,65,25);
           show_help.setBorder(new EmptyBorder(0,0,0,0));
           show_help.setBackground(Color.getHSBColor(23,21,10));
           year_box.addActionListener(this);
           month_box.addActionListener(this);
           return panel;
          }
          private JPanel initializtion_Week(){//顯示星期的panel
        JPanel panel = new JPanel();
        
        panel.setLayout(new GridLayout(1,7));
        
        String columnNames[]={"星期日","星期一","星期二","星期三",
                                        "星期四","星期五","星期六"};
              JLabel label =null;
              for(int i=0;i<7;i++){
               label = new JLabel(columnNames[i],JLabel.CENTER);
               if(i == 0 || i == 6)
                 label.setForeground(Color.RED);
               label.setBorder(new LineBorder(Color.BLUE));
               panel.add(label);
              }
              return panel;
       }
          private JPanel initializtion_Calendar(){//顯示日期的panel
              JPanel panel = new JPanel();
           
              panel.setLayout(new GridLayout(6,7));
              for( int i = 0 ; i < 6 ; i++ ){
                for(int j = 0 ; j < 7 ; j++ ){
               label=new JLabel("",JLabel.CENTER);
               
               datas[i][j] = label;
               label.setBorder(new LineBorder(Color.BLUE));
               if(j==0 || j==6)
                  label.setForeground(Color.RED); 
               datas[i][j].addMouseListener(new List_MouseListener());
               panel.add(label);
              }
           }
           return panel;
          }
         
          public  void clear_Data(){//清空內(nèi)容的
           for(int i = 0 ; i < 6 ; i++ )
            for(int j = 0 ; j < 7 ; j++ ){
             datas[i][j].setText("");
             if(j==0 || j==6)
                datas[i][j].setForeground(Color.RED);
             else
                datas[i][j].setForeground(null);
            }
               
          }
          public  void initializtion_Data(Calendar calendar){//初始化函數(shù)
         ////////////////////////////////////////////////////
         ////////////////////////////////////////////////////////////
          /* 節(jié)日和紀(jì)念日
      格式:起始年(yyyy)+月(mm)+日(dd)


      0000表示起始年不明*/
      HashMap<String,String>  sFestival =new  HashMap<String,String>();
      //String []sFestival_={
      sFestival.put("0101","  元旦");
      sFestival.put("0214","情人節(jié)");
      sFestival.put("0308","婦女節(jié)");
      sFestival.put("0312","植樹節(jié)");
      sFestival.put("0401","愚人節(jié)");
      sFestival.put("0501","勞動(dòng)節(jié)");
      sFestival.put("0504","青年節(jié)");
      sFestival.put("0601","兒童節(jié)");
      sFestival.put("0701","建黨節(jié)");
      sFestival.put("0801","建軍節(jié)");
      sFestival.put("0910","教師節(jié)");
      sFestival.put("1001","國慶節(jié)");
      sFestival.put("1031","萬圣節(jié)");
      sFestival.put("1112","孫中山誕辰");
      sFestival.put("1225","圣誕節(jié)");
      sFestival.put("1226","毛澤東誕辰");
      //};
      //某月第幾個(gè)星期幾
      //起始年(4位)+月(2位)+第幾個(gè)(1位)+星期幾(1位)
      HashMap<String,String>  wFestival =new  HashMap<String,String>();
      //String []wFestival={
      wFestival.put("0520","母親節(jié)");
      wFestival.put("0630","父親節(jié)");
      wFestival.put("1144","感恩節(jié)");
      //};
      //農(nóng)歷 99表示月最后一天
      HashMap<String,String>  lFestival =new  HashMap<String,String>();
      //String []lFestival={
      lFestival.put("0101","春 節(jié)");
      lFestival.put("0102","大年初二");
      lFestival.put("0103","大年初三");
      lFestival.put("0115","元宵節(jié)");
      lFestival.put("0505","端午節(jié)");
      lFestival.put("0707","七 夕");
      lFestival.put("0815","中秋節(jié)");
      lFestival.put("0909","重陽節(jié)");
      lFestival.put("1208","臘八節(jié)");
      lFestival.put("1299","除 夕");
      //};
         
      /////////////////////////////////////////////////////////////
         
         //////////////////////////////////////////////////// 
            this.calendar = calendar;
            today = calendar.get(Calendar.DAY_OF_MONTH);
            int month = calendar.get(Calendar.MONTH);
            int weekindexDay;
         int weekindexMonth;
        
         calendar.set(Calendar.DATE,1);
        
        while(calendar.get(Calendar.MONTH)==month)
        {   weekindexMonth=calendar.get(Calendar.WEEK_OF_MONTH)-1;
            weekindexDay=calendar.get(Calendar.DAY_OF_WEEK)-1;
            int day=calendar.get(Calendar.DAY_OF_MONTH);
            ///////////////////////////////////////////////
            String today_,month_;
            today_ =day < 10?  "0" + day:"" + day;
            month_ =month<10?  "0" +(month+1):""+(month+1);
            Lunar lunar = new Lunar(calendar);
            String lunar_= lunar.toString();
            ///////////////////////////////////////////
            if( null != sFestival.get(month_+today_))
                 lunar_="<font color=red>"+sFestival.get(month_+today_);
            ///////
            String wFestival_=month_+(weekindexMonth)+(weekindexDay);
           
            if( null != wFestival.get(wFestival_)){
             lunar_="<font color=red>"+wFestival.get(wFestival_);
             System.out.println(wFestival_);
            }
               
           
           
           
            if( null != lFestival.get(lunar.numeric_md()))
                lunar_="<font color=red>"+lFestival.get(lunar.numeric_md());
           
           
               
            //計(jì)算除夕
            Calendar temp_calendar = Calendar.getInstance();
            temp_calendar.set(calendar.get(Calendar.YEAR),month,day+1);
           
            //temp_calendar.add(Calendar.DAY_OF_MONTH,1);
            Lunar temp_lunar = new Lunar(temp_calendar);
            String temp_str = temp_lunar.numeric_md();
             if(temp_str.equals("0101"))
                lunar_="<font color=red>"+lFestival.get("1299");
            ///計(jì)算除夕結(jié)束
            //////////////////////////////////////////
            String day_str;
            if(day<10) day_str="<html><center><font size=6>"+today_;
            else       day_str="<html><center><font size=6>"+today_;
           
            day_str+="</font><br>"+lunar_;
         
            if(day==today)
               datas[weekindexMonth][weekindexDay].setForeground(Color.GREEN);
            datas[weekindexMonth][weekindexDay].setText(day_str);
            calendar.add(Calendar.DATE,1);
        } 
           
           
           
       /////////////////////////////////////////////////    
          }
          public  void actionPerformed(ActionEvent e){//日期和年份的選擇更新
           int year = Integer.parseInt(year_box.getSelectedItem().toString()) ;
           int month= Integer.parseInt(month_box.getSelectedItem().toString())-1 ;
           calendar.set(year,month,today);
           clear_Data();
              initializtion_Data(calendar);
          }
          class LookAndFeel_Listener implements ActionListener{//選擇外觀的樣式
       public void actionPerformed(ActionEvent ev){
        JRadioButton o = (JRadioButton)ev.getSource();
        String str=o.getText();
        if("c" == str){
         try {UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
                  } catch(Exception e) { e.printStackTrace(); }
        }else if("s" == str){
         try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                   } catch(Exception e) {e.printStackTrace();}
        }else if("m" == str){
         try{UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");}
                  catch(Exception e) {e.printStackTrace(); }
        }
        SwingUtilities.updateComponentTreeUI(Simple_Calendar.this);
         }
       
          }
          class Statement_Listener implements ActionListener{//顯示聲明信息
           JDialog dialog=null;
           public void actionPerformed(ActionEvent ev){
              String statment = "<html>陰歷及節(jié)日程序 2008 beta1";
               statment +="<br>免費(fèi)軟件(Free Software) 你可以無限傳播與反編譯.";
               statment +="<br>該日歷有三種外觀樣式,有從1900年至2049年間的所有陰歷.";
               statment +="<br>個(gè)人愛好開發(fā)  作者:朱春 Email:npuxbd@163.com";
               statment +="<br>Copyright @ 2008- All Rights Reserved";
              dialog=new  JDialog(Simple_Calendar.this, "陰歷及節(jié)日軟件 2008 beta1",true);
                    dialog.setLayout(null);
                    dialog.setBounds(285,215,365,185);
                    JLabel label_s = new JLabel(statment);//label_s.setBackground(Color.RED);
                    JButton button=new JButton("確 定");
                    button.addActionListener(new ActionListener(){
                     public void actionPerformed(ActionEvent evet){
                        dialog.setVisible(false);
                     }
                    });
                    dialog.add(label_s);label_s.setBounds(20,0,365,100);
                    dialog.add(button);  button.setBounds(145,110,65,25);
                    dialog.setVisible(true);
             }
           
          }
          class List_MouseListener implements MouseListener{//鼠標(biāo)移入時(shí)顯示的信息
           JLabel labe=null;
           String weeks[]={"星期日","星期一","星期二","星期三",
                                        "星期四","星期五","星期六"};
                                       


              public String constellation(Calendar cal){
        
                      String [][]con ={
                           {"水瓶座","0122","0221"},
                           {"雙魚座","0222","0321"},
                           {"白羊座","0322","0420"},
                           {"金牛座","0421","0521"},
                           {"雙子座","0522","0621"},
                           {"巨蟹座","0621","0721"},
                           {"獅子座","0722","0821"},
                           {"處女座","0822","0921"}, 
                           {"天秤座","0922","1021"},
                           {"天蝎座","1022","1121"},
                           {"射手座","1122","1221"},
                           {"摩羯座","1222","0121"}};
                      int month=cal.get(Calendar.MONTH)+1;
                      int today=cal.get(Calendar.DAY_OF_MONTH);
                      String month_str=month<10?"0"+month:""+month;
                      String today_str=today<10?"0"+today:""+today;
                      String str=month_str+today_str;
                      for( int i = 0 ; i < con.length-1 ; i++ )
                      {
                           if(Integer.parseInt(str) >= Integer.parseInt(con[i][1]) && Integer.parseInt(str) <= Integer.parseInt(con[i][2]))
                              return con[i][0]; 
                       
                      }
                      if((Integer.parseInt(str) >= Integer.parseInt(con[11][1]) && Integer.parseInt(str) < 1232) ||  Integer.parseInt(str) <=Integer.parseInt( con[11][2]) )
                         return  con[11][0];
             
                     return "error!";
              }
             
           public void mouseClicked(MouseEvent e) {//鼠標(biāo)按鍵在組件上單擊(按下并釋放)時(shí)調(diào)用。
              
              }    
              public void mouseEntered(MouseEvent e) {//鼠標(biāo)進(jìn)入到組件上時(shí)調(diào)用。
                   labe=(JLabel)e.getSource();
                   String lab =labe.getText();
                   if(lab != ""){
                    labe.setBackground(Color.red);
                    String day=lab.substring(lab.indexOf("size=6>")+7,lab.indexOf("</font>"));
                      //String lun=lab.substring(lab.indexOf("<br>")+4);
                      String message = "<html><body><center>公元 "+year_box.getSelectedItem()+"年"+
                                       month_box.getSelectedItem()+"月"+Integer.parseInt(day)+"日";
                      calendar.set(Integer.parseInt(year_box.getSelectedItem().toString()),
                                   Integer.parseInt(month_box.getSelectedItem().toString())-1,
                                   Integer.parseInt(day));
                      Lunar lunar=new Lunar(calendar);
                      message+="<br><font color=red>"+weeks[(calendar.get(calendar.DAY_OF_WEEK)-1)];
                      message+="&nbsp;&nbsp;&nbsp;&nbsp;"+constellation(calendar)+"</font><br>農(nóng)歷 ";
                      message+=lunar.get_month()+"月"+lunar.get_Big_Or_Small()+"&nbsp;&nbsp;&nbsp;&nbsp;"+lunar.get_date()+"日";
                      //message+=lunar.get_JQ();
                      labe.setToolTipText(message);
                      labe.setBackground(Color.BLUE);
                      labe.setOpaque(true);
                     // System.out.println(day+":"+lun);
                   }
                  
              } 
              public void mouseExited(MouseEvent e) {//  鼠標(biāo)離開組件時(shí)調(diào)用。
                        
              
                              labe.setBackground(null);
                              labe.setOpaque(true);
              }
              public void mousePressed(MouseEvent e) {//  鼠標(biāo)按鍵在組件上按下時(shí)調(diào)用。
             
              }
              public void mouseReleased(MouseEvent e) {//  鼠標(biāo)按鈕在組件上釋放時(shí)調(diào)用。
              }


          }
          /////////////////////////////////////////////////////////
          private JLabel datas[][]=new JLabel[6][7];//顯示一月的日期
          private JLabel temp_label=null;
          private  JLabel label=null;
          private JPanel panel_Header,panel_Week,panel_Calendar;
          private Calendar calendar=null;
          private  JComboBox  year_box = null ;
          private  JComboBox month_box = null ;
          private int today ;
          private JRadioButton cross=null,system=null,motif=null;
          private ButtonGroup feel_group=null;
          private JButton show_help =null;
         
           
      }


       


      /*
       *以下是陰歷對(duì)象;
       * 是從網(wǎng)絡(luò)中得來的;
       */
        class  Lunar  {
           private   int  year;
           private   int  month;
           private   int  day;
           private   boolean  leap;
           final   static  String chineseNumber[]  =   { "一","二","三","四","五","六","七","八","九","十","十一","十二"};
           final   static  String Big_Or_Small[]  =    { "大","小","大","小","大","小","大","大","小","大","小"  ,"大"};
           private String[] LunarHolDayName =
                  {
                      "小寒", "大寒", "立春", "雨水",
                      "驚蟄", "春分", "清明", "谷雨",
                      "立夏", "小滿", "芒種", "夏至",
                      "小暑", "大暑", "立秋", "處暑",
                      "白露", "秋分", "寒露", "霜降",
                      "立冬", "小雪", "大雪", "冬至"};


          
           static  SimpleDateFormat chineseDateFormat  =   new  SimpleDateFormat( " yyyy年MM月dd日 " );
           final   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 } ;
           
                // ====== 傳回農(nóng)歷 y年的總天數(shù)
           final   private   static   int  yearDays( 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));
          }


           // ====== 傳回農(nóng)歷 y年閏月的天數(shù)
           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 ;
          }


           // ====== 傳回農(nóng)歷 y年閏哪個(gè)月 1-12 , 沒閏傳回 0
           final   private   static   int  leapMonth( int  y)  {
               return  ( int ) (lunarInfo[y  -   1900 ]  &   0xf );
          }


           // ====== 傳回農(nóng)歷 y年m月的總天數(shù)
           final   private   static   int  monthDays( int  y,  int  m)  {
               if  ((lunarInfo[y  -   1900 ]  &  ( 0x10000   >>  m))  ==   0 )
                   return   29 ;
               else
                   return   30 ;
          }


           // ====== 傳回農(nóng)歷 y年的生肖
           final   public  String animalsYear()  {
               final  String[] Animals  =   new  String[] { "鼠","牛","虎","兔","龍","蛇","馬","羊","猴","雞","狗","豬"};
              return  Animals[(year  -   4 )  %   12 ];
          }


           // ====== 傳入 月日的offset 傳回干支, 0=甲子
           final   private   static  String cyclicalm( int  num)  {
               final  String[] Gan  =   new  String[] { "甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
               final  String[] Zhi  =   new  String[] { "子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};
               return  (Gan[num  %   10 ]  +  Zhi[num  %   12 ]);
          }


           // ====== 傳入 offset 傳回干支, 0=甲子
           final   public  String cyclical()  {
               int  num  =  year  -   1900   +   36 ;
               return  (cyclicalm(num));
          }


           /** */ /**
           * 傳出y年m月d日對(duì)應(yīng)的農(nóng)歷.
           * yearCyl3:農(nóng)歷年與1864的相差數(shù)              ?
           * monCyl4:從1900年1月31日以來,閏月數(shù)
           * dayCyl5:與1900年1月31日相差的天數(shù),再加40      ?
           *  @param  cal
           *  @return 
            */
           public  Lunar(Calendar cal)  {
            //cal.add(cal.get(Calendar.DAY_OF_MONTH),1);
              @SuppressWarnings( " unused " )  int  yearCyl, monCyl, dayCyl;
               int  leapMonth  =   0 ;
              Date baseDate  =   null ;
               try   {
                  baseDate  =  chineseDateFormat.parse( " 1900年1月31日 " );
              }   catch  (ParseException e)  {
                  e.printStackTrace();   // To change body of catch statement use Options | File Templates.
              }


               // 求出和1900年1月31日相差的天數(shù)
               int  offset  =  ( int ) ((cal.getTime().getTime()  -  baseDate.getTime())  /   86400000L );
              dayCyl  =  offset  +   40 ;
              monCyl  =   14 ;


               // 用offset減去每農(nóng)歷年的天數(shù)
               //  計(jì)算當(dāng)天是農(nóng)歷第幾天
               // i最終結(jié)果是農(nóng)歷的年份
               // offset是當(dāng)年的第幾天
               int  iYear, daysOfYear  =   0 ;
               for  (iYear  =   1900 ; iYear  <   2050   &&  offset  >   0 ; iYear ++ )  {
                  daysOfYear  =  yearDays(iYear);
                  offset  -=  daysOfYear;
                  monCyl  +=   12 ;
              }
               if  (offset  <   0 )  {
                  offset  +=  daysOfYear;
                  iYear -- ;
                  monCyl  -=   12 ;
              }
               // 農(nóng)歷年份
              year  =  iYear;


              yearCyl  =  iYear  -   1864 ;
              leapMonth  =  leapMonth(iYear);  // 閏哪個(gè)月,1-12
              leap  =   false ;


               // 用當(dāng)年的天數(shù)offset,逐個(gè)減去每月(農(nóng)歷)的天數(shù),求出當(dāng)天是本月的第幾天
               int  iMonth, daysOfMonth  =   0 ;
               for  (iMonth  =   1 ; iMonth  <   13   &&  offset  >   0 ; iMonth ++ )  {
                   // 閏月
                   if  (leapMonth  >   0   &&  iMonth  ==  (leapMonth  +   1 )  &&   ! leap)  {
                       -- iMonth;
                      leap  =   true ;
                      daysOfMonth  =  leapDays(year);
                  }   else
                      daysOfMonth  =  monthDays(year, iMonth);


                  offset  -=  daysOfMonth;
                   // 解除閏月
                   if  (leap  &&  iMonth  ==  (leapMonth  +   1 )) leap  =   false ;
                   if  ( ! leap) monCyl ++ ;
              }
               // offset為0時(shí),并且剛才計(jì)算的月份是閏月,要校正
               if  (offset  ==   0   &&  leapMonth  >   0   &&  iMonth  ==  leapMonth  +   1 )  {
                   if  (leap)  {
                      leap  =   false ;
                  }   else   {
                      leap  =   true ;
                       -- iMonth;
                       -- monCyl;
                  }
              }
               // offset小于0時(shí),也要校正
               if  (offset  <   0 )  {
                  offset  +=  daysOfMonth;
                   -- iMonth;
                   -- monCyl;
              }
              month  =  iMonth;
              day  =  offset  +   1 ;
          }


           public   static  String getChinaDayString( int  day)  {
              String chineseTen[]  =   { "初" ,  "十" ,  "廿" ,  "卅" } ;
               int  n  =  day  %   10   ==   0   ?   9  : day  %   10   -   1 ;
               if  (day  >   30 )
                   return   "" ;
               if  (day  ==   10 )
                   return   "初十" ;
               else
                   return  chineseTen[day  /   10 ]  +  chineseNumber[n];
          }


          public  String toString()  {
               return  /*cyclical() +   "年"   + */ (leap  ?   "閏"  :  "" )  +  chineseNumber[month  -   1 ]  +   "月"   +  getChinaDayString(day);
          }
          public String numeric_md(){//返回阿拉伯?dāng)?shù)字的陰歷日期
           String temp_day;
           String temp_mon;
           temp_mon=month<10?"0"+month:""+month;
           temp_day=day < 10?"0"+ day:""+ day;
           
           return temp_mon+temp_day;
          }
          public String get_month(){//返回陰歷的月份
           return chineseNumber[month  -   1 ];
          }
          public String get_date(){//返回陰歷的天
           return getChinaDayString(day);
          }
          public String get_Big_Or_Small(){//返回的月份的大或小
           return Big_Or_Small[month  -   1 ];
          }
         
         
      }
        class SwingConsole {//提供安全線程機(jī)制
       public static void run(final JFrame f,final int width,final int height){
        SwingUtilities.invokeLater(new Runnable(){
         public void run(){
         
          f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          f.setSize(width,height);
          f.setVisible(true);
         }
        });
       }
      }

        PPT圖表
        (111)PPT圖表
        我們?cè)谥谱鞲黝惖臅r(shí)候,或多或少的都能用到圖表。圖表它可以直觀的展示出各種信息數(shù)據(jù),有了圖表你就可以很好的將數(shù)據(jù)更直觀準(zhǔn)確的表達(dá)出來。小編在這里為大家搜集整理了一些大家可能會(huì)用到的圖表模板,歡迎有需要的各位前來下載。...更多>>

        相關(guān)評(píng)論

        閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評(píng)論

        最新評(píng)論

        發(fā)表評(píng)論 查看所有評(píng)論(8)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)