由于最近要搞毕业设计,正好我的论文就是Java这块的。我就将自己用Java做的万年历贴到我的博客。希望能给需要的人一点帮助。

/**

* MainFrame.java

* Summary 万年历主类

*/

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.text.*;

import java.util.*;

class Clock extends Canvas implements Runnable{

MainFrame mf;

Thread t;

String time;

Clock(MainFrame mf){

this.mf=mf;

setSize(400,40);

setBackground(Color.white);

t=new Thread(this);                //实例化线程

t.start();                        //调用线程

}

public void run(){

while(true){

try{

t.sleep(1000);                    //休眠1秒钟

}catch(InterruptedException e){

System.out.println("异常");

}

this.repaint(100);

}

}

public void paint(Graphics g){

Font f=new Font("宋体",Font.BOLD,16);

SimpleDateFormat SDF=new SimpleDateFormat("yyyy'年'MM'月'dd'日'HH:mm:ss");//格式化时间显示类型

Calendar now=Calendar.getInstance();

time=SDF.format(now.getTime());        //得到当前日期和时间

g.setFont(f);

g.setColor(Color.red);

g.drawString(time,100,25);

}

}

class MainFrame extends JFrame{

JPanel panel=new JPanel(new BorderLayout());

JPanel panel1=new JPanel();

JPanel panel2=new JPanel(new GridLayout(7,7));

JPanel panel3=new JPanel();

JLabel label[]=new JLabel[49];

JLabel 年份=new JLabel("年份");

JLabel 月份=new JLabel("月份");

JComboBox com1=new JComboBox();    //下拉窗口

JComboBox com2=new JComboBox();

JButton 查看=new JButton("查看");

int re_year,re_month;

int x_size,y_size;

String year_num;

Calendar now=Calendar.getInstance();    //实例化Calendar

MainFrame(){

super("万年历");

setSize(300,350);

x_size=(int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth());

y_size=(int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight());

setLocation((x_size-300)/2,(y_size-350)/2);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

panel1.add(年份);

panel1.add(com1);

panel1.add(月份);

panel1.add(com2);

panel1.add(查看);

for(int i=0;i<49;i++){

label[i]=new JLabel("",JLabel.CENTER);//将显示的字符设置为居中

panel2.add(label[i]);

}

panel3.add(new Clock(this));

panel.add(panel1,BorderLayout.NORTH);

panel.add(panel2,BorderLayout.CENTER);

panel.add(panel3,BorderLayout.SOUTH);

panel.setBackground(Color.white);

panel1.setBackground(Color.yellow);

panel2.setBackground(Color.white);

panel3.setBackground(Color.blue);

Init();

查看.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

int c_year,c_month,c_week;

c_year=Integer.parseInt(com1.getSelectedItem().toString());        //得到当前所选年份

c_month=Integer.parseInt(com2.getSelectedItem().toString())-1;    //得到当前月份,并减1,计算机中的月为0-11

c_week=use(c_year,c_month);        //调用函数use,得到星期几

Resetday(c_week,c_year,c_month);        //调用函数Resetday

}});

setContentPane(panel);

setVisible(true);

setResizable(false);

}

public void Init(){

int year,month_num,first_day_num;

String log[]={"日","一","二","三","四","五","六"};

for(int i=0;i<7;i++){

label[i].setText(log[i]);

}

for(int i=0;i<49;i=i+7){

label[i].setForeground(Color.red);    //将星期日的日期设置为红色

}

for(int i=6;i<49;i=i+7){

label[i].setForeground(Color.red);//将星期六的日期设置为红色

}

for(int i=1;i<10000;i++){

com1.addItem(""+i);

}

for(int i=1;i<13;i++){

com2.addItem(""+i);

}

month_num=(int)(now.get(Calendar.MONTH));    //得到当前时间的月份

year=(int)(now.get(Calendar.YEAR));            //得到当前时间的年份

com1.setSelectedIndex(year-1);                //设置下拉列表显示为当前年

com2.setSelectedIndex(month_num);            //设置下拉列表显示为当前月

first_day_num=use(year,month_num);

Resetday(first_day_num,year,month_num);

}

public int use(int reyear,int remonth){

int week_num;

now.set(reyear,remonth,1);        //设置时间为所要查询的年月的第一天

week_num= (int)(now.get(Calendar.DAY_OF_WEEK));//得到第一天的星期

return week_num;

}

public void Resetday(int week_log,int year_log,int month_log){

int month_score_log;    //判断是否是闰年的标记

int month_day_score;    //存储月份的天数

int count;

month_score_log=0;

month_day_score=0;

count=1;

if(year_log%4==0&&year_log%100!=0||year_log%400==0){//判断是否为闰年

month_score_log=1;

}

month_log=month_log+1;    //将传来的月份数加1

switch(month_log){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

month_day_score=31;

break;

case 4:

case 6:

case 9:

case 11:

month_day_score=30;

break;

case 2:

if(month_score_log==1){

month_day_score=29;

}

else{

month_day_score=28;

}

break;

}

for(int i=7;i<49;i++){        //初始化标签

label[i].setText("");

}

week_log=week_log+6;        //将星期数加6,使显示正确

month_day_score=month_day_score+week_log;

for(int i=week_log;i

label[i].setText(count+"");

}

}

public static void main(String [] args){

JFrame.setDefaultLookAndFeelDecorated(true);

MainFrame start=new MainFrame();

}

}

万年历代码java功能_java 的万年历代码相关推荐

  1. java循环之后求和代码,Java lambda 循环累加求和代码

    java 8 sthttp://www.cppcns.comream 提供了下面几种类型的求和 Stream::mapToInt Stream::mapToDouble Stream::mapToLo ...

  2. java qq聊天界面代码,Java简易qq聊天,代码

    Java简易qq聊天,代码 关注:156  答案:2  手机版 解决时间 2021-02-26 11:56 提问者心死旳很干净 2021-02-25 16:17 Java简易qq聊天,代码 最佳答案 ...

  3. java三角形代码,Java编程实现帕斯卡三角形代码示例

    源程序揭秘 杨辉三角形性质: 每行数字左右对称,由 1 开始逐渐变大,然后变小,回到 1. 第 n 行的数字个数为 n 个. 第 n 行数字和为 2^(n-1) . 每个数字等于上一行的左右两个数字之 ...

  4. java代码实现链表_java单链表代码实现

    用惯了C++,java写起来果然不太爽...不废话了,上代码... package javaInnerclassDemo; class Link{ class Node{ private String ...

  5. java代码加载_java类中代码加载顺序

    package org.senssic; /** * 一般顺序:静态块-->静态变量-->成员变量-->构造方法-->静态方法(或非静态方法,需要调用) * 1.静态代码块(只 ...

  6. 源码天空java新闻_Java UpdateRequest类代码示例

    import es.tid.pce.pcep.constructs.UpdateRequest; //导入依赖的package包/类 private void sendUpdate(LSPTEInfo ...

  7. 单机版五子棋java功能_java实现单机版和网络对战版五子棋程序

    [实例简介] java实现单机版和网络对战版五子棋,功能包括计时.悔棋.聊天.显示双方状态等等.详细见https://blog.csdn.net/qq_37913997/article/details ...

  8. hello world的Java代码,Java语言实现hello world代码

    参考https://blog.csdn.net/yilovexing/article/details/53256713 24种编程语言的Hello World程序 Java 文档注释 Java 支持三 ...

  9. java链表代码,java链表的基本使用 代码

    package test; interface ILink{ public void add(E e);//添加链表数据 public int size();//返回链表长度 public boole ...

  10. 单机版五子棋java功能_JAVA单机版五子棋怎么写

    展开全部 import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.awt.Color; p ...

最新文章

  1. php5.4 mysql connect_php5.4 Call to undefined function mysql_connect()
  2. DeOccNet:国防科大提出阵列相机去除前景遮挡成像新方法
  3. 十行代码实现十亿图片检索,我们把它开源了
  4. 拼装html字符串的最快方法
  5. 【Remoting-4】
  6. 129.求根到叶子节点数字之和
  7. 物业计算机管理系统论文,物业小区管理系统 计算机专业毕业论文.doc
  8. CCD传感器成像、尺寸、曝光时间
  9. 矩形已知三个点的坐标,求第四个点的坐标
  10. 历届全国大学生GIS应用技能大赛试题及数据
  11. 广告市场VUCA时代来了!怎么办?
  12. ubuntu部署NVIDIA驱动和CUDA及CUDNN
  13. 有趣的设计模式——微信公众号中蕴藏的观察者模式
  14. 详解TCP/IP协议栈面临的五大网络安全问题
  15. c语言中的英语缩写,英文短信缩写:超实用总结(C开头)
  16. 设计师的可访问性调研指南
  17. 0开始学py爬虫(学习笔记)
  18. 长按键盘,输出多个字,怎么解决?
  19. iphone显示信号强弱(field test)
  20. 仓储+调度,YOGO智能配送站能否改变外卖配送格局?

热门文章

  1. php学习redis买什么书,redis
  2. vb写数据到mysql数据库_VB2010写入数据到access 2003数据库
  3. ABC类IP地址划分
  4. DDA算法和Bresenham算法
  5. worklist 需要传的参数
  6. Android 开源项目及库汇总
  7. 02 华为交换机配置telnet远程登录
  8. 高清人脸数据集—FFHQ
  9. node.js以及读取写入文件
  10. 网页自动关机代码HTML,自动定时关机命令