真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java代碼怎么寫日歷 用java寫日歷

用java寫個日歷程序怎么寫,請給出詳細(xì)步驟,謝謝

隨便做了一個,其實一樓網(wǎng)友說的判斷哪些30天,是否閏年什么的沒必要,看代碼:

東山網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

package?com.baidu.calendar;

import?java.awt.BorderLayout;

import?java.awt.Color;

import?java.awt.FlowLayout;

import?java.awt.Font;

import?java.awt.GridLayout;

import?java.awt.event.ItemEvent;

import?java.awt.event.ItemListener;

import?java.text.DateFormat;

import?java.text.SimpleDateFormat;

import?java.util.Calendar;

import?javax.swing.JComboBox;

import?javax.swing.JFrame;

import?javax.swing.JLabel;

import?javax.swing.JPanel;

import?javax.swing.border.CompoundBorder;

import?javax.swing.border.EmptyBorder;

import?javax.swing.border.LineBorder;

public?class?CalendarInterface?extends?JFrame?{

private?static?final?long?serialVersionUID?=?1L;

private?JComboBox?yearBox,?monthBox;

private?static?final?int?YEAR_RANGE?=?50;?//?年份范圍,即往前往后各推多少年

private?JPanel?topPane,?contentPane;

private?JPanel?bottomPane,?bottomTopPane,?mainPane;

private?JLabel?dateLabel;

private?boolean?init?=?false;

private?Calendar?cal;

private?static?final?Calendar?NOW?=?Calendar.getInstance();

private?static?final?String[]?DAY_OF_WEEK?=?{"星期日彎讓",?"星期一",?"星期二",

"星期三"虛磨,?"星期四",?"星期五",?"星期六"};

private?DateFormat?df?=?new?SimpleDateFormat("yyyy年MM月");

private?static?final?Color?FONT_GRAY?=?new?Color(0xaa,?0xaa,?0xaa);

private?static?final?int?DATE_GRAY?=?-1;

private?static?final?int?DATE_RED?差鬧斗=?1;

private?static?final?int?DATE_BLACK?=?0;

public?CalendarInterface()?{

super("日歷");

cal?=?Calendar.getInstance();

cal.setFirstDayOfWeek(Calendar.SUNDAY);

}

public?void?launch()?{

setVisible(true);

setSize(600,?450);

setDefaultCloseOperation(EXIT_ON_CLOSE);

//?主面板

contentPane?=?new?JPanel(new?BorderLayout());

contentPane.setBorder(new?EmptyBorder(5,?5,?5,?5));

contentPane.setBackground(Color.WHITE);

//?頂部選擇日期和月份的區(qū)域

topPane?=?new?JPanel(new?FlowLayout(FlowLayout.CENTER,?50,?0));?//?居中對齊,控件間隔50px

topPane.setBorder(new?EmptyBorder(0,?0,?10,?0));?//?底部空出10px

topPane.setBackground(Color.WHITE);

//?底部顯示星期條和日歷列表區(qū)域

bottomPane?=?new?JPanel(new?BorderLayout());

bottomPane.setBorder(new?LineBorder(Color.BLACK,?1));

//?星期條

bottomTopPane?=?new?JPanel(new?GridLayout(1,?7));

bottomTopPane.setBackground(new?Color(0x55,?0x55,?0x55));

//?日期列表

mainPane?=?new?JPanel();

mainPane.setLayout(new?GridLayout(0,?7));?//?列數(shù)為7,行數(shù)自動填充

for(int?i?=?Calendar.SUNDAY;?i?=?Calendar.SATURDAY;?i?++)?{

bottomTopPane.add(createDay(DAY_OF_WEEK[i?-?1]));

}

bottomPane.add(bottomTopPane,?BorderLayout.NORTH);?//?星期欄放在頂部

//?年份下拉列表

yearBox?=?new?JComboBox();

int?currentYear?=?cal.get(Calendar.YEAR);

//?年份范圍為往前往后各推50年

for(int?i?=?currentYear?-?YEAR_RANGE;?i??currentYear?+?YEAR_RANGE?+?1;?i?++)?{

yearBox.addItem(i);

}

yearBox.addItemListener(new?ItemListener()?{

@Override

public?void?itemStateChanged(ItemEvent?e)?{

if(ItemEvent.SELECTED?==?e.getStateChange())?{

reset();?//?選擇后刷新布局

}

}

});

yearBox.setSelectedIndex(YEAR_RANGE);?//?默認(rèn)選中當(dāng)前年份

String?months[]?=?{"1",?"2",?"3",?"4",?"5",?"6",?"7",?"8",?"9",?"10",?"11",?"12"};

//?月份下拉列表

monthBox?=?new?JComboBox(months);

monthBox.addItemListener(new?ItemListener()?{

@Override

public?void?itemStateChanged(ItemEvent?e)?{

if(ItemEvent.SELECTED?==?e.getStateChange())?{

reset();?//刷新布局

}

}

});

monthBox.setSelectedIndex(cal.get(Calendar.MONTH));?//?選擇當(dāng)前月份

//?顯示當(dāng)前年月的控件

this.dateLabel?=?new?JLabel(df.format(cal.getTime()));

topPane.add(yearBox);

topPane.add(monthBox);

topPane.add(dateLabel);

contentPane.add(topPane,?BorderLayout.NORTH);

bottomPane.add(mainPane,?BorderLayout.CENTER);

contentPane.add(bottomPane,?BorderLayout.CENTER);

setContentPane(contentPane);

validate();

init?=?true;?//?初始化完成

reset();?//?刷新界面

setLocationRelativeTo(null);?//?居中顯示

}

public?static?void?main(String[]?args)?{

new?CalendarInterface().launch();

}

private?void?reset()?{?//?每次年份或月份改變后則日歷重新排列

if(!init)?{?//?若未初始化則返回,避免設(shè)置默認(rèn)年月時調(diào)用此方法出錯

return;

}

int?year?=?(Integer)?yearBox.getSelectedItem();

int?month?=?Integer.parseInt((String)?monthBox.getSelectedItem());

//?將日期設(shè)置為本月第一天

cal.set(Calendar.YEAR,?year);

cal.set(Calendar.MONTH,?month?-?1);

cal.set(Calendar.DATE,?1);

dateLabel.setText(df.format(cal.getTime()));?//?顯示年月

mainPane.removeAll();?//?清空日歷列表

//?判斷本月第一天是星期幾,在第一天之前增加空的日歷

int?startDayOfWeek?=?cal.get(Calendar.DAY_OF_WEEK);

int?i;

//?先設(shè)置為本周屬于上個月的幾天,置灰顯示

cal.add(Calendar.DATE,?-(startDayOfWeek?-?Calendar.SUNDAY)?-?1);

for(i?=?Calendar.SUNDAY;?i??startDayOfWeek;?i?++)?{

cal.add(Calendar.DATE,?1);

int?date?=?cal.get(Calendar.DATE);

mainPane.add(createDate(Integer.toString(date),?DATE_GRAY));

}

i?=?startDayOfWeek;

//?重新初始化為本月第一天

cal.set(Calendar.MONTH,?month?-?1);

cal.set(Calendar.DATE,?1);

int?maxDate?=?cal.getActualMaximum(Calendar.DATE);?//?本月最多的天數(shù)(不用再去判斷是否閏年了)

for(int?j?=?1;?j?=?maxDate;?j?++)?{

cal.set(Calendar.DATE,?j);?//?日期一直自增,用來判斷是否是今天

JLabel?jlDate?=?null;

if(isToday())?{?//?是今天則高亮顯示

jlDate?=?createDate(Integer.toString(j),?DATE_RED);

}?else?{?//?不是今天則顯示為普通顏色

jlDate?=?createDate(Integer.toString(j));

}

mainPane.add(jlDate);

}

//?最后一周把不屬于本月的幾天用灰色控件填充

int?lastDay?=?cal.get(Calendar.DAY_OF_WEEK);

for(i?=?lastDay;?i??Calendar.SATURDAY;?i?++)?{

cal.add(Calendar.DATE,?1);

int?date?=?cal.get(Calendar.DATE);

mainPane.add(createDate(Integer.toString(date),?DATE_GRAY));

}

mainPane.validate();

}

private?JLabel?createDate(String?date)?{

return?createDate(date,?DATE_BLACK);

}

//?創(chuàng)建日期控件

private?JLabel?createDate(String?date,?int?dateColor)?{

JLabel?label?=?new?JLabel(date,?JLabel.CENTER);

CompoundBorder?border?=?new?CompoundBorder(

new?LineBorder(Color.WHITE,?1),

new?EmptyBorder(10,?10,?10,?10));

label.setBorder(border);

Font?font?=?new?Font("Arial",?Font.BOLD,?30);

if(DATE_GRAY?==?dateColor)?{?//?如果不是本月則文字置灰

label.setForeground(FONT_GRAY);

}?else?if(DATE_RED?==?dateColor)?{?//?如果是今天則高亮顯示

label.setForeground(Color.RED);

}

label.setFont(font);

return?label;

}

//?創(chuàng)建星期幾的橫條

private?JLabel?createDay(String?day)?{

JLabel?jlDay?=?new?JLabel(day,?JLabel.CENTER);

jlDay.setBorder(new?EmptyBorder(5,?5,?5,?5));

jlDay.setBackground(Color.GRAY);

jlDay.setForeground(Color.WHITE);

return?jlDay;

}

//?判斷是否今天

private?boolean?isToday()?{

return?cal.get(Calendar.YEAR)?==?NOW.get(Calendar.YEAR)

?cal.get(Calendar.MONTH)?==?NOW.get(Calendar.MONTH)

?cal.get(Calendar.DATE)?==?NOW.get(Calendar.DATE);

}

}

java編寫日歷

我給你貼上我在java核心技術(shù)中看到的代碼吧,當(dāng)然沒有輸入年份和月份,是按照當(dāng)前時間創(chuàng)建的,寫有我寫的注釋,應(yīng)該能看的懂

/*

* 2012年5月13日10:37:58

* 日歷程序

* Function:

* 顯示當(dāng)前月份的日歷

* 總結(jié)

* 1. 0-11分別代表1-12月

* 1-7分別代表周日-周六

* 2. 使用GregorianCalendar對象的get方法(參數(shù))獲取月,日,年等信息

* 3.

*/

import java.text.DateFormatSymbols;

import java.util.*;

public class CalendarTest {

public static void main(String[] args) {

//construct d as current date構(gòu)造一個日期

GregorianCalendar d = new GregorianCalendar();

//獲取今天是這個月的第幾天

int today = d.get(Calendar.DAY_OF_MONTH); //Calendar.DAY_OF_MONTH作為參數(shù)調(diào)用,得到今天是這個月的第幾天

int month = d.get(Calendar.MONTH); //月份

d.set(Calendar.DAY_OF_MONTH, 1); //設(shè)置d的日期是本月的1號

int weekDay = d.get(Calendar.DAY_OF_WEEK); //獲取當(dāng)天位于本星期的第幾天,也就確定了星期幾,值的范圍是1-7

int firstDayOfWeek = d.getFirstDayOfWeek(); //獲取一星期的第早坦一天,我們得到的是Calendar.SUNDAY,因為我們一星期的第一天是周日

int indent = 0; //為了定位本月第一天,定義索引

while (weekDay != firstDayOfWeek) {

//注意,月份用0-11代表1-12月,為了清晰起見,使用常量代替,下面寬遲獲取月份得到的實際是當(dāng)前月-1的值,所以我們要加1

//System.out.printf("當(dāng)前星期的第%d天,位于當(dāng)月的第%d天, 現(xiàn)在是%d月\n",

// weekDay, d.get(Calendar.DAY_OF_MONTH), d.get(Calendar.MONTH)+1); //Test Code

indent++;//陸巧桐縮進個數(shù)+1

d.add(Calendar.DAY_OF_MONTH, -1);//當(dāng)前天數(shù)-1,如果現(xiàn)在是1號,則執(zhí)行本條代碼后,時間變?yōu)樯弦粋€月最后一天

weekDay = d.get(Calendar.DAY_OF_WEEK); //重新獲取當(dāng)天位于本星期的第幾天

}

String[] weekDayNames = new DateFormatSymbols().getShortWeekdays();//獲取簡短形式的星期字符串?dāng)?shù)組

//System.out.println(weekDayNames.length);getShortWeekdays()得到的數(shù)組的長度是8,下標(biāo)為0的是沒有值1為星期日...7為星期六

//注釋代碼1

//Java核心技術(shù)的代碼

/*

do {

//System.out.printf("%4s", weekDayNames[weekDay]); //經(jīng)過上面定義索引,weekDay代表的是本星期日

d.add(Calendar.DAY_OF_MONTH, 1); //天數(shù)加1

weekDay = d.get(Calendar.DAY_OF_WEEK); //重新獲得weekDay的值

} while (weekDay != firstDayOfWeek); //當(dāng)循環(huán)完一個星期后,這里判斷不成立,退出循環(huán)

*/

//我寫的代碼,替換上面注釋代碼1

for (int i=1; iweekDayNames.length; i++)//打印星期標(biāo)題

System.out.printf("%3s\t", weekDayNames[i]);//引號內(nèi)是一個全角的空格,因為是中文版,不是書上英文環(huán)境,中文和空格對于不上,這里我們用\t解決

//System.out.printf("%3s ", weekDayNames[i]); //方式2

System.out.println();//換行

for (int i=1; i=indent; i++)//確定一星期的一天位置,利用上面indent

System.out.printf("\t");//如用方式2,則這里內(nèi)容是四個全角空格

//實現(xiàn)輸出日期

d.set(Calendar.MONTH, month);

d.set(Calendar.DAY_OF_MONTH, 1);

do {

//print day

int day = d.get(Calendar.DAY_OF_MONTH);

System.out.printf("%3d", day);

if (day == today)

System.out.print("*");

System.out.print("\t");

d.add(Calendar.DATE, 1);//天數(shù)加1

weekDay = d.get(Calendar.DAY_OF_WEEK);//刷新weekDay

if (weekDay == firstDayOfWeek) //如果這天等于星期天則換行

System.out.println();

} while (d.get(Calendar.MONTH) == month);

}

}

用java寫的日歷記事本代碼?

詳細(xì)代碼

//CalendarWindow類:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import java.io.*;

public class CalendarWindow extends JFrame implements ActionListener,

MouseListener,FocusListener{

int year,month,day;

CalendarMessage calendarMessage;

CalendarPad calendarPad;

NotePad notePad;

JTextField showYear,showMonth;

JTextField [] showDay;

CalendarImage calendarImage;

Clock clock;

JButton nextYear,previousYear,nextMonth,previousMonth;

JButton saveDailyRecord,deleteDailyRecord,readDailyRecord;

File dir;

Color backColor=Color.gray;

public CalendarWindow(){

dir=new File("./dailyRecord");

dir.mkdir();

showDay=new JTextField[42];

for(int i=0;i嘩弊毀showDay.length;i++){

showDay[i]=new JTextField();

showDay[i].setBackground(backColor);

showDay[i].setLayout(new GridLayout(3,3));

showDay[i].addMouseListener(this);

showDay[i].addFocusListener(this);

}

calendarMessage=new CalendarMessage();

calendarPad=new CalendarPad();

notePad=new NotePad();

Calendar calendar=Calendar.getInstance();

calendar.setTime(new Date());

year=calendar.get(Calendar.YEAR);

month=calendar.get(Calendar.MONTH)+1;

day=calendar.get(Calendar.DAY_OF_MONTH);

calendarMessage.setYear(year);

calendarMessage.setMonth(month);

calendarMessage.setDay(day);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.setShowDayTextField(showDay);

notePad.setShowMessage(year,month,day);

calendarPad.showMonthCalendar();

doMark(); //給有日志的號碼做標(biāo)亂備記,見后面的卜扮doMark()方法

calendarImage=new CalendarImage();

calendarImage.setImageFile(new File("sea.jpg"));

clock=new Clock();

JSplitPane splitV1=

new JSplitPane(JSplitPane.VERTICAL_SPLIT,calendarPad,calendarImage);

JSplitPane splitV2=

new JSplitPane(JSplitPane.VERTICAL_SPLIT,notePad,clock);

JSplitPane splitH=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitV1,splitV2);

add(splitH,BorderLayout.CENTER);

showYear=new JTextField(""+year,6);

showYear.setFont(new Font("TimesRoman",Font.BOLD,12));

showYear.setHorizontalAlignment(JTextField.CENTER);

showMonth=new JTextField(" "+month,4);

showMonth.setFont(new Font("TimesRoman",Font.BOLD,12));

showMonth.setHorizontalAlignment(JTextField.CENTER);

nextYear=new JButton("下年");

previousYear=new JButton("上年");

nextMonth=new JButton("下月");

previousMonth=new JButton("上月");

nextYear.addActionListener(this);

previousYear.addActionListener(this);

nextMonth.addActionListener(this);

previousMonth.addActionListener(this);

showYear.addActionListener(this);

JPanel north=new JPanel();

north.add(previousYear);

north.add(showYear);

north.add(nextYear);

north.add(previousMonth);

north.add(showMonth);

north.add(nextMonth);

add(north,BorderLayout.NORTH);

saveDailyRecord=new JButton("保存日志") ;

deleteDailyRecord=new JButton("刪除日志");

readDailyRecord=new JButton("讀取日志");

saveDailyRecord.addActionListener(this);

deleteDailyRecord.addActionListener(this);

readDailyRecord.addActionListener(this);

JPanel pSouth=new JPanel();

pSouth.add(saveDailyRecord);

pSouth.add(deleteDailyRecord);

pSouth.add(readDailyRecord);

add(pSouth,BorderLayout.SOUTH);

setVisible(true);//根據(jù)參數(shù) b 的值顯示或隱藏此 Window

setBounds(60,60,660,480);

validate();//驗證此容器及其所有子組件

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設(shè)置用戶在此窗體上發(fā)起 "close" 時默認(rèn)執(zhí)行的操作

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==nextYear){

year++;

showYear.setText(""+year);

calendarMessage.setYear(year);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if(e.getSource()==previousYear){

year--;

showYear.setText(""+year);

calendarMessage.setYear(year);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if(e.getSource()==nextMonth){

month++;

if(month12) month=1;

showMonth.setText(" "+month);

calendarMessage.setMonth(month);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if(e.getSource()==previousMonth){

month--;

if(month1) month=12;

showMonth.setText(" "+month);

calendarMessage.setMonth(month);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if(e.getSource()==showYear){

String s=showYear.getText().trim();

char a[]=s.toCharArray();

boolean boo=false;

for(int i=0;ia.length;i++)

if(!(Character.isDigit(a[i])))

boo=true;

if(boo==true) //彈出“警告”消息對話框

JOptionPane.showMessageDialog(this,"您輸入了非法年份","警告", JOptionPane.WARNING_MESSAGE);

else if(boo==false)

year=Integer.parseInt(s);

showYear.setText(""+year);

calendarMessage.setYear(year);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if(e.getSource()==saveDailyRecord){

notePad.save(dir,year,month,day);

doMark();

}

else if(e.getSource()==deleteDailyRecord){

notePad.delete(dir,year,month,day);

doMark();

}

else if(e.getSource()==readDailyRecord)

notePad.read(dir,year,month,day);

}

public void mousePressed(MouseEvent e){

JTextField text=(JTextField)e.getSource();

String str=text.getText().trim();

try{ day=Integer.parseInt(str);

}

catch(NumberFormatException exp){

}

calendarMessage.setDay(day);

notePad.setShowMessage(year,month,day);

}

public void mouseReleased(MouseEvent e){}

public void mouseEntered(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

public void mouseClicked(MouseEvent e) {}

public void focusGained(FocusEvent e){

Component com=(Component)e.getSource();

com.setBackground(Color.red);

}

public void focusLost(FocusEvent e){

Component com=(Component)e.getSource();

com.setBackground(backColor);

}

public void doMark(){

for(int i=0;ishowDay.length;i++){

showDay[i].removeAll();

String str=showDay[i].getText().trim();

try{

int n=Integer.parseInt(str);

if(isHaveDailyRecord(n)==true){ //見后面的isHaveDailyRecord()方法

JLabel mess=new JLabel("存");

mess.setFont(new Font("TimesRoman",Font.PLAIN,11));

mess.setForeground(Color.black) ;

showDay[i].add(mess);

} }

catch(Exception exp){}

}

calendarPad.repaint();

calendarPad.validate();

}

public boolean isHaveDailyRecord(int n){

String key=""+year+""+month+""+n;

String [] dayFile=dir.list();

boolean boo=false;

for(int k=0;kdayFile.length;k++){

if(dayFile[k].equals(key+".txt")){

boo=true;

break;

} }

return boo;

}

public static void main(String args[]){

new CalendarWindow();

}

}

//CalendarPad類:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

public class CalendarPad extends JPanel{

int year,month,day;

CalendarMessage calendarMessage;

JTextField [] showDay;

JLabel title[];

String [] 星期={"SUN/日","MON/一","TUE/二","WED/三","THU/四","FRI/五","SAT/六"};

JPanel north,center;

public CalendarPad(){

setLayout(new BorderLayout());

north=new JPanel();

north.setLayout(new GridLayout(1,7));

center=new JPanel();

center.setLayout(new GridLayout(6,7));

add(center,BorderLayout.CENTER);

add(north,BorderLayout.NORTH);

title=new JLabel[7];

for(int j=0;j7;j++){

title[j]=new JLabel();

title[j].setFont(new Font("TimesRoman",Font.BOLD,12));

title[j].setText(星期[j]);

title[j].setHorizontalAlignment(JLabel.CENTER);

title[j].setBorder(BorderFactory.createRaisedBevelBorder());

north.add(title[j]);

}

title[0].setForeground(Color.red);

title[6].setForeground(Color.blue);

}

public void setShowDayTextField(JTextField [] text){

showDay=text;

for(int i=0;ishowDay.length;i++){

showDay[i].setFont(new Font("TimesRoman",Font.BOLD,15));

showDay[i].setHorizontalAlignment(JTextField.CENTER);

showDay[i].setEditable(false);

center.add(showDay[i]);

}

}

public void setCalendarMessage(CalendarMessage calendarMessage){

this.calendarMessage=calendarMessage;

}

public void showMonthCalendar(){

String [] a=calendarMessage.getMonthCalendar();

for(int i=0;i42;i++)

showDay[i].setText(a[i]);

validate();

}

}


本文標(biāo)題:java代碼怎么寫日歷 用java寫日歷
分享鏈接:http://weahome.cn/article/ddpsdjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部