Java 日历的小程序

简介:

Java写的日历小程序,算法效率虽然不算很高,却是简单实用的

CalendarBean.java

 
  1. import java.util.Calendar;   
  2.  
  3. public class CalendarBean   
  4. {   
  5.        String day[];   
  6.        int year=2005,month=0;          
  7.        public void setYear(int year)   
  8.        {   
  9.            this.year=year;   
  10.        }   
  11.          
  12.        public int getYear()   
  13.        {   
  14.            return year;   
  15.        }   
  16.          
  17.        public void setMonth(int month)   
  18.        {   
  19.            this.month=month;   
  20.        }   
  21.          
  22.        public int getMonth()   
  23.        {   
  24.            return month;   
  25.        }   
  26.          
  27.        public String[] getCalendar()   
  28.        {   
  29.            String a[]=new String[42];   
  30.            Calendar date=Calendar.getInstance();   
  31.            date.set(year,month-1,1);   
  32.            int week=date.get(Calendar.DAY_OF_WEEK)-1;   
  33.            int day=0;   
  34.             
  35.            //判断大月份  
  36.            if(month==1||month==3||month==5||month==7 
  37.              ||month==8||month==10||month==12)   
  38.            {   
  39.                day=31;   
  40.            }   
  41.              
  42.            //判断小月  
  43.            if(month==4||month==6||month==9||month==11)   
  44.            {   
  45.                day=30;   
  46.            }   
  47.              
  48.            //判断平年与闰年  
  49.            if(month==2)   
  50.            {   
  51.                if(((year%4==0)&&(year%100!=0))||(year%400==0))   
  52.                {   
  53.                    day=29;   
  54.                }   
  55.                  
  56.                else   
  57.                {   
  58.                    day=28;   
  59.                }   
  60.             }   
  61.              
  62.            for(int i=week,n=1;i<week+day;i++)   
  63.            {   
  64.                    a[i]=String.valueOf(n) ;   
  65.                    n++;   
  66.            }              
  67.            return a;   
  68.         }   
  69. }  

CalendarFrame.java

 
  1. import java.awt.*;   
  2. import java.awt.event.*;   
  3. import javax.swing.*;  
  4.  
  5. public class CalendarFrame extends JFrame implements ActionListener   
  6. {   
  7.        JLabel labelDay[]=new JLabel[42];   
  8.        JTextField  text=new JTextField(10);  
  9.        JButton titleName[]=new JButton[7];   
  10.        JButton button = new JButton();  
  11.        String name[]={"日","一","二","三""四","五","六"};   
  12.        JButton nextMonth,previousMonth;   
  13.        int year=1996,month=1//启动程序显示的日期信息  
  14.        CalendarBean calendar;   
  15.        JLabel showMessage=new JLabel("",JLabel.CENTER);   
  16.        JLabel lbl1 = new JLabel("请输入年份:");  
  17.        JLabel lbl2=new JLabel("      ");  
  18.  
  19.        public CalendarFrame()   
  20.        {   
  21.            JPanel pCenter=new JPanel();   
  22.              
  23.          //将pCenter的布局设置为7行7列的GridLayout 布局。   
  24.            pCenter.setLayout(new GridLayout(7,7));    
  25.              
  26.          //pCenter添加组件titleName[i]  
  27.            for(int i=0;i<7;i++)   
  28.            {   
  29.                titleName[i]=new JButton(name[i]);   
  30.                pCenter.add(titleName[i]);   
  31.            }   
  32.  
  33.          //pCenter添加组件labelDay[i]  
  34.            for(int i=0;i<42;i++)   
  35.            {   
  36.                labelDay[i]=new JLabel("",JLabel.CENTER);   
  37.                pCenter.add(labelDay[i]);  
  38.            }   
  39.              
  40.            text.addActionListener(this);  
  41.            calendar=new CalendarBean();   
  42.            calendar.setYear(year);   
  43.            calendar.setMonth(month);   
  44.            String day[]=calendar.getCalendar();   
  45.  
  46.            for(int i=0;i<42;i++)   
  47.            {   
  48.                labelDay[i].setText(day[i]);   
  49.            }   
  50.  
  51.            nextMonth=new JButton("下月");   
  52.            previousMonth=new JButton("上月");   
  53.            button=new JButton("确定");  
  54.              
  55.            //注册监听器  
  56.            nextMonth.addActionListener(this);   
  57.            previousMonth.addActionListener(this);   
  58.            button.addActionListener(this);  
  59.              
  60.            JPanel pNorth=new JPanel(),  
  61.            pSouth=new JPanel();   
  62.            pNorth.add(showMessage);    
  63.            pNorth.add(lbl2);    
  64.            pNorth.add(previousMonth);   
  65.            pNorth.add(nextMonth);   
  66.            pSouth.add(lbl1);          
  67.            pSouth.add(text);  
  68.            pSouth.add(button);  
  69.            showMessage.setText("日历:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" );  
  70.            ScrollPane scrollPane=new ScrollPane();   
  71.            scrollPane.add(pCenter);   
  72.            add(scrollPane,BorderLayout.CENTER);// 窗口添加scrollPane在中心区域   
  73.            add(pNorth,BorderLayout.NORTH);// 窗口添加pNorth 在北面区域   
  74.            add(pSouth,BorderLayout.SOUTH);// 窗口添加pSouth 在南区域。  
  75.  
  76.         }   
  77.         
  78.         public void actionPerformed(ActionEvent e)   
  79.         {   
  80.             if(e.getSource()==nextMonth)   
  81.             {   
  82.                 month=month+1;   
  83.                 if(month>12)   
  84.                 month=1;   
  85.                 calendar.setMonth(month);   
  86.                 String day[]=calendar.getCalendar();   
  87.  
  88.                 for(int i=0;i<42;i++)   
  89.                 {  
  90.                     labelDay[i].setText(day[i]);   
  91.                 }   
  92.              }   
  93.             else if(e.getSource()==previousMonth)   
  94.             {   
  95.                 month=month-1;                
  96.                 if(month<1)   
  97.                 month=12;   
  98.                 calendar.setMonth(month);   
  99.                 String day[]=calendar.getCalendar();   
  100.  
  101.                 for(int i=0;i<42;i++)   
  102.                 {   
  103.                     labelDay[i].setText(day[i]);   
  104.                 }   
  105.              }   
  106.             else if(e.getSource()==button)  
  107.             {  
  108.                 month=month+1;                
  109.                 if(month>12)                  
  110.                       month=1;                
  111.                 calendar.setYear(Integer.parseInt(text.getText()));               
  112.                 String day[]=calendar.getCalendar();                  
  113.                 for(int i=0;i<42;i++)  
  114.                 {  
  115.                     labelDay[i].setText(day[i]);  
  116.                 }  
  117.             }  
  118.           showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );   
  119.        }   
  120. }   
  121.  
  122.    

CalendarMainClass .java

 
  1. import javax.swing.JFrame;  
  2. import javax.swing.UIManager;  
  3.  
  4. public class CalendarMainClass   
  5. {   
  6.         public static void main(String args[])   
  7.         {   
  8.              try {  
  9.                  UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); //windows界面风格  
  10.               }catch (Exception e) {  
  11.                 e.printStackTrace();  
  12.               }  
  13.               CalendarFrame frame=new CalendarFrame();   
  14.               frame.setBounds(100,100,360,300);   
  15.               frame.setTitle("日历小程序");  
  16.               frame.setLocationRelativeTo(null);//窗体居中显示  
  17.               frame.setVisible(true);   
  18.               frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  19.         }   
  20. }  

程序的效果图:


本文转自 lingdududu 51CTO博客,原文链接: 

http://blog.51cto.com/liangruijun/625909


相关文章
|
1月前
|
小程序 前端开发 JavaScript
基于Java的校园二手交易小程序的设计与实现
基于Java的校园二手交易小程序的设计与实现
27 2
|
3月前
|
人工智能 移动开发 小程序
Java医院智慧3D导诊系统源码 微信小程序源码
技术架构:springboot+redis+mybatis plus+mysql+RocketMQ
58 1
|
3月前
|
机器学习/深度学习 自然语言处理 小程序
Java+springboot开发医院智能导诊小程序源码
患者信息采集:在患者来院时,可以通过智能问诊系统收集患者的基本信息、症状描述、病史等。这可以通过语音识别、自然语言处理技术实现。
35 0
|
1月前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
16天前
|
人工智能 小程序 Java
Java智慧校园系统源码 微信小程序+电子班牌
通过设备管理对百纳智慧校园的智慧班牌以及百纳智慧屏(校牌)进行统一集中式管理,支持浏览所有设备的基本信息以及在离线状态,支持添加设备、设备一键开关机、一键重启、设置节假日开关机时间、设置日常开关机时间、远程班牌截屏、远程班牌升级等操作。
|
22天前
|
Java Android开发
日历/万年历【小游戏】(Java课设)
日历/万年历【小游戏】(Java课设)
16 1
日历/万年历【小游戏】(Java课设)
|
1月前
|
存储 小程序 前端开发
Java代码能搭建小程序
Java代码能搭建小程序
17 0
|
1月前
|
Java
用Java编写年份日历
用Java编写年份日历
21 0
|
2月前
|
Java
自制日历java
自制日历java
|
2月前
|
人工智能 小程序 数据挖掘
Java智慧中小学校管理系统源码带微信小程序
微信小程序端包括家长端和教师端;设有首页、发现、个人中心;首页里设有学校简介、组织架构、师资力量、学校荣誉、网上报修、电子班牌;发现页面可以看到最新的动态,班级圈等;个人中心设有上班打卡、我的课表、请假、班级考勤、通知公告、倒计时、积分商城、放学管理、体温检测、班级德育、图片视频管理、教学班,校内各大活动一目了然。
36 0