分享
 
 
 

小小日历(calendar)

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

package calendar;

import Java.awt.*;

import java.awt.event.*;

import java.applet.*;

import javax.swing.*;

public class CalendarV2 extends Applet {

private boolean isStandalone = false;

//Get a parameter value

public String getParameter(String key, String def) {

return isStandalone ? System.getProperty(key, def) :

(getParameter(key) != null ? getParameter(key) : def);

}

//ConstrUCt the applet

public CalendarV2() {

}

//Initialize the applet

public void init() {

try {

jbInit();

}

catch(Exception e) {

e.printStackTrace();

}

}

//Component initialization

private void jbInit() throws Exception {

jLabel1.setText("Please Enter Year");

jLabel1.setBounds(new Rectangle(8, 30, 114, 26));

this.setLayout(null);

jTextField1.setText("");

jTextField1.setBounds(new Rectangle(129, 30, 136, 27));

jLabel2.setText("Please Ente Month");

jLabel2.setBounds(new Rectangle(4, 70, 104, 26));

jTextField2.setText("");

jTextField2.setBounds(new Rectangle(130, 69, 136, 26));

jButton1.setBounds(new Rectangle(16, 122, 233, 21));

jButton1.setText("CheckCalendarV2");

jButton1.addActionListener(new CalendarV2_jButton1_actionAdapter(this));

jButton2.setBounds(new Rectangle(16, 156, 232, 20));

jButton2.setText("Exit");

jButton2.addActionListener(new CalendarV2_jButton2_actionAdapter(this));

this.add(jButton1, null);

this.add(jTextField1, null);

this.add(jTextField2, null);

this.add(jLabel2, null);

this.add(jLabel1, null);

this.add(jButton2, null);

}

JLabel jLabel1 = new JLabel();

JTextField jTextField1 = new JTextField();

JLabel jLabel2 = new JLabel();

JTextField jTextField2 = new JTextField();

JButton jButton1 = new JButton();

//Get Applet information

public String getAppletInfo() {

return "Applet Information";

}

//Get parameter info

public String[][] getParameterInfo() {

return null;

}

//Main method

public static void main(String[] args) {

CalendarV2 applet = new CalendarV2();

applet.isStandalone = true;

Frame frame;

frame = new Frame();

frame.setTitle("Applet Frame");

frame.add(applet, BorderLayout.CENTER);

applet.init();

applet.start();

frame.setSize(400,320);

Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);

frame.setVisible(true);

}

// Declare dataMember

//********************

boolean isLeapYear,isEverPressBTn=false;

int thisYear,EnterYear,EnterMonth;

//***********************************************************************************

//Methods

//***********************************************************************************

//-----计算该年天数---------------

public int checkYear(int Year){

if(Year%4==0&&Year%100!=0){

thisYear = 366;

}

if(Year%100==0&&Year%400==0){

thisYear = 366;

}

else if(Year%4!=0){

thisYear=365;

}

return thisYear;

}

//--------------------------------

//------查看是否闰年----------------

public boolean checkLeapYear(int Year){

if(Year%4==0&&Year%100!=0){

isLeapYear=true;

}

if(Year%400==0)

isLeapYear=true;

else if(Year%4!=0){

isLeapYear=false;

}

return isLeapYear;

}

//---------------------------------

//--------计算当月天数---------------

//要输入年份的原因是要判定二月29天还是28天

public int checkMonth(int Month ,int Year){

int Dates=0;

if (Month <0Month>12){

System.out.println("Month Error");

}

if(Month==1Month==3Month==5

Month==7Month==8Month==10

Month==12){

Dates=31;

}

if(Month==2&&this.checkLeapYear(Year)){

Dates=29;

}

if(Month==2&&!this.checkLeapYear(Year)){

Dates=28;

}

if(Month==4Month==6Month==9Month==11){

Dates=30;

}

return Dates;

}

//------------------------------------

//-----用递归法计算目标年到已知年的总天数---

public int counterYearDates(int EnterYear){

int sum1=0;

if(EnterYear==2001){//2001年为已知年

sum1=0; //递归从此跳出

}

if(EnterYear>2001){

sum1+=this.checkYear(EnterYear-1)

+this.counterYearDates(EnterYear-1);

}

//当目标年大于2001年,则从目标年-1往前累加

//到2001年为止

if(EnterYear<2001){

sum1+=this.checkYear(EnterYear)

+this.counterYearDates(EnterYear+1);

}

//当目标年小于2001年,则从目标年往后累加

//到2001年为止

return sum1;

}

//-----计算目标年从一月到目标月的总天数------------------------

//要输入年份的原因是要判定二月29天还是28天

public int counterMonthDates(int EnterMonth,int EnterYear){

int sum2=0;

if(EnterMonth==1){

sum2=0;

}

if(EnterMonth>1&&EnterMonth<=12){

sum2+=this.checkMonth(EnterMonth-1,EnterYear)

+this.counterMonthDates(EnterMonth-1,EnterYear);

}

else if(EnterMonth<0){

System.out.print("Month Error");

}

return sum2;

}

//------------------------------------------------

//-------------用数组存目标月日期-----------------------------

public int[] Array(int AllDates,int EnterMonth){

int n=AllDates%7;

int a=1;

int[] DayInTable=new int[38];

if(n<0)//Keep the n bigger than 0

n=7+n+1;//Line 207 haven′t add 1,so here add

if(n!=0)

for(int i=n;i<this.checkMonth(EnterMonth,EnterYear)+n;i++){

DayInTable[i]=a;

a++;

}

else

for(int i=7;i<this.checkMonth(EnterMonth,EnterYear)+7;i++){

//若n为0,则说明目标月一号为星期日

DayInTable[i]=a;

a++;

}

return DayInTable;

}

//----------------------------------------------------------

//-----------打印输出-------------------------------

public void printTable(int[]DayInTable){

System.out.println("Curren Date is: Year "

+EnterYear+" Month "+EnterMonth);

System.out.print("Mon Tue Wed Thur Fri Sat Sun ");

System.out.println();

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

if(DayInTable[i]==0)

System.out.print(" ");

if(i%7==0&&DayInTable[i]!=0){ //防止在最后i=35时输出0

System.out.print(DayInTable[i]+" ");

System.out.println();

}

else if(DayInTable[i]>9)

System.out.print(DayInTable[i]+" ");

else if(DayInTable[i]!=0) //防止在最后i<9时输出0

System.out.print(DayInTable[i]+" ");

if(i==37)

System.out.println();

}

}

//-----------------------------------------------------

//---------------按钮触发事件---------------------

void jButton1_actionPerformed(ActionEvent e) {

/*

***********refresh Datas******************

if(isEverPressBtn){

Dates=0;AllDates=0;sum1=0;sum2=0;thisYear=0;

/*假如这几个变量在方法里声明,则不用刷新,请看CalendarV2*/

//}

/******Left All Datas go back to 0****/

int AllDates=0;

String a,b;

a=jTextField1.getText();

b=jTextField2.getText();

EnterYear=Integer.parseInt(a);

EnterMonth=Integer.parseInt(b);

if(EnterYear>=2001){

AllDates=this.counterYearDates(EnterYear)

+this.counterMonthDates(EnterMonth,EnterYear)+1;

}

else if(EnterYear>0){

AllDates=-this.counterYearDates(EnterYear)

+this.counterMonthDates(EnterMonth,EnterYear);

}

else

System.out.print("Year Error");

printTable(Array(AllDates,EnterMonth));

isEverPressBtn=true;

}

JButton jButton2 = new JButton();

void jButton2_actionPerformed(ActionEvent e) {

System.exit(1);

}

//--------------------------------------------------------

//***********************************************************************************

//Methods

//***********************************************************************************

}

class CalendarV2_jButton1_actionAdapter implements java.awt.event.ActionListener {

CalendarV2 adaptee;

CalendarV2_jButton1_actionAdapter(CalendarV2 adaptee) {

this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) {

adaptee.jButton1_actionPerformed(e);

}

}

class CalendarV2_jButton2_actionAdapter implements java.awt.event.ActionListener {

CalendarV2 adaptee;

CalendarV2_jButton2_actionAdapter(CalendarV2 adaptee) {

this.adaptee = adaptee;

}

public void actionPerformed(ActionEvent e) {

adaptee.jButton2_actionPerformed(e);

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有