利用EXCEL自带的日历控件可以制作日历表,具体 *** 作请参照以下步骤。
1、在电脑上打开Excel 2007软件,用鼠标右击界面左上角的office按钮,在d出的菜单中选择“自定义快速访问工具栏”选项点击。
2、接着在d出的“EXCEL选项”对话框的“自定义”页面中,将“其他控件”添加到自定义快速访问工具栏中。
3、然后返回到主界面,可以看到最上面的工具栏中多了一个其他控件的小图标,点击它。
4、然后会d出一个“其他控件”的对话框,找到日历控件,进行点击。
5、完成以上设置后,即可用Excel制作日历表。
以下是两个类,请楼主分别存成两个java文件:
其中
MainFramejava是显示日历程序,Clockjava是日历计算程序。编译后运行MainFrame这个类即可。
1MainFramejava
---
import javaawtBorderLayout;
import javaawtColor;
import javaawtGridLayout;
import javaawtToolkit;
import javaawteventActionEvent;
import javaawteventActionListener;
import javasqlDate;
import javautilCalendar;
import javaxswingJComboBox;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
public class MainFrame extends JFrame {
/ //
/
private static final long serialVersionUID = 1L;
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 y_label = new JLabel("年份");
JLabel m_label = new JLabel("月份");
JComboBox com1 = new JComboBox();
JComboBox com2 = new JComboBox();
int re_year, re_month;
int x_size, y_size;
String year_num;
Calendar now = CalendargetInstance(); // 实例化Calendar
MainFrame() {
super("万年历");
setSize(300, 350);
x_size = (int) (ToolkitgetDefaultToolkit()getScreenSize()getWidth());
y_size = (int) (ToolkitgetDefaultToolkit()getScreenSize()getHeight());
setLocation((x_size - 300) / 2, (y_size - 350) / 2);
setDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
panel1add(y_label);
panel1add(com1);
panel1add(m_label);
panel1add(com2);
for (int i = 0; i < 49; i++) {
label[i] = new JLabel("", JLabelCENTER);// 将显示的字符设置为居中
panel2add(label[i]);
}
panel3add(new Clock(this));
paneladd(panel1, BorderLayoutNORTH);
paneladd(panel2, BorderLayoutCENTER);
paneladd(panel3, BorderLayoutSOUTH);
panelsetBackground(Colorwhite);
panel1setBackground(Colorwhite);
panel2setBackground(Colorwhite);
panel3setBackground(Colorwhite);
Init();
com1addActionListener(new ClockAction());
com2addActionListener(new ClockAction());
setContentPane(panel);
setVisible(true);
setResizable(false);
}
class ClockAction implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
int c_year, c_month, c_week;
c_year = IntegerparseInt(com1getSelectedItem()toString()); // 得到当前所选年份
c_month = IntegerparseInt(com2getSelectedItem()toString()) - 1; // 得到当前月份,并减1,计算机中的月为0-11
c_week = use(c_year, c_month); // 调用函数use,得到星期几
Resetday(c_week, c_year, c_month); // 调用函数Resetday
}
}
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(Colorred); // 将星期日的日期设置为红色
}
for (int i = 6; i < 49; i = i + 7) {
label[i]setForeground(Colorgreen);// 将星期六的日期设置为绿色
}
for (int i = 1; i < 10000; i++) {
com1addItem("" + i);
}
for (int i = 1; i < 13; i++) {
com2addItem("" + i);
}
month_num = (int) (nowget(CalendarMONTH)); // 得到当前时间的月份
year = (int) (nowget(CalendarYEAR)); // 得到当前时间的年份
com1setSelectedIndex(year - 1); // 设置下拉列表显示为当前年
com2setSelectedIndex(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;
nowset(reyear, remonth, 1); // 设置时间为所要查询的年月的第一天
week_num = (int) (nowget(CalendarDAY_OF_WEEK));// 得到第一天的星期
return week_num;
}
@SuppressWarnings("deprecation")
public void Resetday(int week_log, int year_log, int month_log) {
int month_day_score; // 存储月份的天数
int count;
month_day_score = 0;
count = 1;
Date date = new Date(year_log, month_log + 1, 1); // now
Calendar cal = CalendargetInstance();
calsetTime(date);
caladd(CalendarMONTH, -1); // 前个月
month_day_score = calgetActualMaximum(CalendarDAY_OF_MONTH);// 最后一天
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 < month_day_score; i++, count++) {
label[i]setText(count + "");
}
}
public static void main(String[] args) {
JFramesetDefaultLookAndFeelDecorated(true);
new MainFrame();
}
}
2Clockjava
-----
import javaawtBorderLayout;
import javaawtColor;
import javaawtGridLayout;
import javaawtToolkit;
import javaawteventActionEvent;
import javaawteventActionListener;
import javasqlDate;
import javautilCalendar;
import javaxswingJComboBox;
import javaxswingJFrame;
import javaxswingJLabel;
import javaxswingJPanel;
//显示时间的类:Clock
/ //
Clockjava
Summary 数字时间显示
Created on
@author
remark
/
import javaawtCanvas;
import javaawtColor;
import javaawtFont;
import javaawtGraphics;
import javatextSimpleDateFormat;
import javautilCalendar;
class Clock extends Canvas implements Runnable{
/ //
/
private static final long serialVersionUID = 3660124045489727166L;
MainFrame mf;
Thread t;
String time;
public Clock(MainFrame mf){
thismf=mf;
setSize(280,40);
setBackground(Colorwhite);
t=new Thread(this); //实例化线程
tstart(); //调用线程
}
public void run(){
while(true){
try{
Threadsleep(1000); //休眠1秒钟
}catch(InterruptedException e){
Systemoutprintln("异常");
}
thisrepaint(100);
}
}
public void paint(Graphics g){
Font f=new Font("宋体",FontBOLD,16);
SimpleDateFormat SDF=new SimpleDateFormat("yyyy'年'MM'月'dd'日'HH:mm:ss");//格式化时间显示类型
Calendar now=CalendargetInstance();
time=SDFformat(nowgetTime()); //得到当前日期和时间
gsetFont(f);
gsetColor(Colororange);
gdrawString(time,45,25);
}
}
#include <iostream>
#include <iomanip >
using namespace std;
void Output(int year,int month,bool which)
{
int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
long alldays(62);
int firstday;
int i;
alldays+=(year-1)365+(year-1)/4;
firstday=alldays%7;
if(which)
mon[1]=29;
for(i=0;i<month-1;i++)
firstday+=mon[i];
firstday%=7;
for(i=0;i<firstday;i++)
cout<<" ";
for(i=1;i<=mon[month-1];i++)
{
cout<<setw(7)<<i;
if((firstday+i)%7==0)
cout<<endl;
}
}
int main()
{
char ch;
int Year;
int Month;
bool whichyear;
step1: cout<<"Now Please input year: ";
cin>>Year;
cout<<"Now Please input month: ";
cin>>Month;
cout<<Year;
if(((Year%4==0)&&(Year%100!=0))||(Year%400==0))
{
cout<<"年是闰年,天数为366天"<<endl;
whichyear=1;
}
else
{
cout<<"年是平年,天数为365天"<<endl;
whichyear=0;
}
cout<<" Mon Tues Wens thurs Fri Sat Sun"<<endl;
Output(Year,Month,whichyear);
cout<<endl<<"是否继续查看y/n";
cin>>ch;
if((ch=='Y')||(ch=='y'))
goto step1;
else
exit(0);
return 0;
}
/你好,这个问题我来回答,希望能被采纳://函数功能输出year的日历/#include<stdioh>void
main(){int
a,b,c,d,e,f,i,j,k,n,m,year;printf("input
the
year:\n");
scanf("%d",&year);
//输入数据的初始化;b=year;c=year%4;d=year/4;e=d1461+c365;f=e%7;j=f;
//初始化Year年的第一天的星期;m=j;printf("%d年的日历\n",year);for(a=1;a<=12;a++)
//函数的主要部分,主要实现日历的打印部分
{
if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)k=31;
else
if(a==4||a==6||a==9||a==11)k=30;
else
if((year%4==0&&year%100!=0)||(year%400==0))k=29;
else
k=28;
printf("%d月份\n
STAT
SUN
MON
TUE
WED
THUR
FRI\n",a);
m=j;
if(m<=5)m=m+1;
else
m=m-6;
for(n=1;n<=m;n++)printf("
");
for(i=1;i<=k;i++,j++)
{if(j==7)j=0;
if(i<10)printf("
%d",i);
else
printf("
%d",i);
if(j==5)printf("\n");
}
printf("\n\n\n");
}}
万年历制作
1在场景中,图层1拖入已做好的背景,上锁。
2添加图层,名日历,点下第一帧,窗口,组件,User Interface,DateChooser,点中拖到场景,用任意变形工具调整大小,放好位置。
3日历中显示的是英文,现在要改为中文,选中第一帧,点属性面板中的参数,再点下日历,第一行dayNames后面的英文双击(这是日期),值下面修改,0改为日,1改为一,依此类推,改完,按确定。
4第四行monthNames后面的英文双击(这里是月份),值下面的0改为一月,1改为二月,一直改到十二月,确定。
5如果你的日期不正确,在电脑右下角修改即可。
以上就是关于如何用Excel制作日历表全部的内容,包括:如何用Excel制作日历表、java 如何用calendar类生成万年历、用C++编一个电子日历的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)