
JAVA日历的看法心得体会…原代码如下
import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.Panel;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.util.Calendar;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class DateCalendar extends JFrame implements ItemListener{ private static final long serialVersionUID = 1L; private JComboBox year; private JComboBox month; private JLabel l[]; Calendar c=Calendar.getInstance(); public DateCalendar() { year=new JComboBox(); for (int i = 1990; i < 2020; i++) { year.addItem(i+); } month=new JComboBox(); for (int i = 1; i <=12; i++) { month.addItem(i+); } JPanel p=new JPanel(); p.add(new JLabel(请 选 择:)); p.add(year); p.add(new JLabel(年 )); p.add(month); p.add(new JLabel(日 )); JPanel p1=new JPanel(); l=new JLabel[49]; for (int i = 0; i < l.length; i++) { l[i]=new JLabel(); l[i].setHorizontalAlignment(JLabel.CENTER); p1.add(l[i]); } l[0].setText(日); l[1].setText(一); l[2].setText(二); l[3].setText(三); l[4].setText(四); l[5].setText(五); l[6].setText(六); year.addItemListener(this); month.addItemListener(this); p1.setLayout(new GridLayout(7,7)); this.init(); this.getContentPane().add(p1); this.getContentPane().add(p,BorderLayout.NORTH); this.setSize(200, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setLocation(400, 200); this.setVisible(true); } \\\/\\\/第一次实例化对象时,把面板信息显示为当前月的信息 public void init(){ nian=c.get(Calendar.YEAR); yue=c.get(Calendar.MONTH)+1; ri=c.get(Calendar.DAY_OF_MONTH); year.setSelectedItem(nian+); month.setSelectedItem(yue+); this.setCalendar();\\\/\\\/调用显示面板信息设置 } int nian,yue,ri; \\\/\\\/下拉事件 public void itemStateChanged(ItemEvent e) { c.set(Calendar.YEAR,Integer.parseInt(year.getSelectedItem().toString())); c.set(Calendar.MONTH,Integer.parseInt(month.getSelectedItem().toString())-1); this.setCalendar(); } \\\/\\\/设置显示面板的信息 public void setCalendar(){ for (int i = 7; i < l.length; i++) { l[i].setText(); l[i].setForeground(Color.BLACK); } c.set(Calendar.DAY_OF_MONTH, 1); for (int i = 1; i <=this.getDay(c.get(Calendar.YEAR), c.get(Calendar.MONTH)+1); i++) { l[5+i+c.get(Calendar.DAY_OF_WEEK)].setText(i+); if(nian==c.get(Calendar.YEAR)&&yue==c.get(Calendar.MONTH)+1&&ri==i){ l[5+i+c.get(Calendar.DAY_OF_WEEK)].setForeground(Color.BLUE); } } } \\\/\\\/判断天数 public int getDay(int y,int m){ if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){ return 31; } if(m==4||m==6||m==9||m==11){ return 30; } if(y%4==0&&y%100!=0||y%400==0){ return 29; }else{ return 28; } } public static void main(String[] args){ new DateCalendar().setTitle(日历显示); }}
古代人在没有科技支持的前提下,是怎样推算出万年历的
用天干地支纪年、月、日、时的历法叫干支历,是中国所特有的阳历。
这种历法,即仍在用的皇历,多记在《历书》即过去的《皇历》上。
在老《皇历》上,除了干支纪日外,同时把日期上又加上了另外12个字并成口诀。
即:建满平收黑(黑道),除危定执黄(黄道),成开皆可用(黄道),闭破不能行(黑道)。
就这样,人为地把每天划分成“黄道吉日”和“黑道凶日”。
黄道吉日就是万事皆宜的日子。
农民历或称黄历、通胜可以择吉,找结婚、嫁娶、订婚、约会、开张、开市和搬家等黄道吉日。
所谓黄黑道是天体中的自然现象,前人总结了这种现象对人类影响的规律,围绕二十八宿星运行、值日,制定了黄黑道日。
从而对人类的生存与发展、趋吉避凶,提供了一定的参考与选择。
\ \ 好日子



