日曆:
<%@page contentType="text/html;charset=GBK"%>
<%@page import="java.util.Calendar"%>
<%//@page errorPage="handleErrorPage.jsp"%>
<div align=center style="position: absolute; top: 12%; width=100%">
<%
boolean requested = false;
Calendar cld = Calendar.getInstance();
if(request.getParameter("year")!=null){
cld.set(cld.YEAR,Integer.parseInt(request.getParameter("year")));
requested= true;
//out.println("year: "+cld.get(cld.YEAR));
}
if(request.getParameter("month")!=null){
cld.set(cld.MONTH,Integer.parseInt(request.getParameter("month"))-1);
requested= true;
//out.println("month: "+(cld.get(cld.MONTH)+1));
}
out.println(cld.get(cld.YEAR)+"年"+(cld.get(cld.MONTH)+1)+"月");
//out.println(cld.getTime());
//將日曆轉到當月第一天
cld.add(cld.DATE,1-cld.get(cld.DATE));
//擷取這一天的星期數
int weekOfFirstDay = cld.get(cld.DAY_OF_WEEK);
%>
<table border=1>
<tr bgColor="227799">
<td>日</td>
<td>一</td>
<td>二</td>
<td>三</td>
<td>四</td>
<td>五</td>
<td>六</td>
</tr>
<tr>
<%
//日曆的前空白欄框數 剛好是當月第一天的星期數
for(int i=0;i<weekOfFirstDay-1;i++){
out.println("<td></td>");
}
//迴圈長度是當月的最大天數
for(int i=0;i<cld.getActualMaximum(cld.DATE);i++){
//周日就前面加"<tr>"
if(((weekOfFirstDay+i-1) % 7)==0){
out.println("<tr>");
}
//i+1是日期數
out.println("<td>"+(i+1)+"</td>");
//周六就後面加"</tr>" 基於HTML語言可以省去</tr> 所以也可去掉
//if(((weekOfFirstDay+i)% 7)==0){
// out.println("</tr>");
//}
}
%>
</table>
<form>
<select name ="year">
<%
for(int i=0; i<80;i++){
out.println("<option");
if(requested&&(1949+i)==Integer.parseInt(request.getParameter("year"))){
out.println(" selected");
}
out.println(">"+(1949+i));
}
%>
</select>
<select name ="month">
<%
for(int i=0; i<12;i++){
out.println("<option");
if(requested&&i+1==Integer.parseInt(request.getParameter("month"))){
out.println(" selected");
}
out.println(">"+(new Integer(i+1)).toString().toUpperCase());//英文大小寫轉換 數字無效
}
%>
</select>
<input type="submit" value="提交">
</form>
</div>
數組全排列
public class Test{
public static void main(String[] args){
int a[]={2,5,6,7};
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(j==i)continue;
for(int k=0;k<4;k++){
if(k==i||k==j)continue;
System.out.print(a[i]*1000+a[j]*100+a[k]*10+a[6-i-j-k]);
System.out.print(" ");
}
}
System.out.println();
}
}
}
計算機
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyCalc
{
String result=new String();
StringBuffer numAppend = new StringBuffer();
String operator=new String();
JFrame f = null;
JMenuBar mb = null;
JMenu m1 = new JMenu("編輯(E)");
JMenu m2 = new JMenu("查看(V)");
JMenu m3 = new JMenu("協助(H)");
JMenuItem mi11=new JMenuItem("複製(C) Ctrl+C");
JMenuItem mi12=new JMenuItem("粘貼(P) Ctrl+V");
JCheckBoxMenuItem mi21=new JCheckBoxMenuItem("標準型(T)");
JCheckBoxMenuItem mi22=new JCheckBoxMenuItem("科學型(S)");
JCheckBoxMenuItem mi23=new JCheckBoxMenuItem("數字分組(I)");
JMenuItem mi31=new JMenuItem("說明主題(H)");
JMenuItem mi32=new JMenuItem("關於計算機(A)");
JTextField tf =new JTextField(32);
public MyCalc(String s,int x,int y,int w,int h){
f = new JFrame(s);
mb = new JMenuBar();
f.setJMenuBar(mb);
mb.add(m1);
mb.add(m2);
mb.add(m3);
m1.add(mi11);
m1.add(mi12);
m2.add(mi21);
m2.add(mi22);
m2.addSeparator();
m2.add(mi23);
m3.add(mi31);
m3.addSeparator();
m3.add(mi32);
JPanel pp = new JPanel();
pp.setLayout(new BorderLayout(5,5));
JPanel pForTextF = new JPanel(new FlowLayout(FlowLayout.LEFT));
pForTextF.add(tf);
f.add(pp);
JPanel p =new JPanel();
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
// Rectangle rect = p.getBounds();
// int width = ((Double)rect.getWidth()).intValue();
// int height = ((Double)rect.getHeight()).intValue();
// System.out.println(width+""+height);
int width=w*11/12;
int height=(h-12)*4/6;
p1.setBounds(0,0,width/7,height/6);
p2.setBounds(width/7+10,0,width*6/7-8,height/6);
p3.setBounds(0,height/6+10,width/7,height*5/6-8);
p4.setBounds(width/7+10,height/6+10,width*6/7-8,height*5/6-8);
// p1.setBackground(Color.BLUE);
// p2.setBackground(Color.GREEN);
// p3.setBackground(Color.YELLOW);
// p4.setBackground(Color.MAGENTA);
JTextField tf1 = new JTextField(3);
tf1.setEditable(false);
p1.add(tf1);
JButton b21 = new JButton("Backspace");
JButton b22 = new JButton("CE");
JButton b23 = new JButton("C");
b21.setForeground(Color.RED);
b22.setForeground(Color.RED);
b23.setForeground(Color.RED);
p2.setLayout(new GridLayout(1,3,3,3));
p2.add(b21);
p2.add(b22);
p2.add(b23);
JButton b31 = new JButton("MC");
JButton b32 = new JButton("MR");
JButton b33 = new JButton("MS");
JButton b34 = new JButton("M+");
b31.setForeground(Color.RED);
b32.setForeground(Color.RED);
b33.setForeground(Color.RED);
b34.setForeground(Color.RED);
b31.setSize(5,5);
p3.setLayout(new GridLayout(4,1,3,3));
p3.add(b31);
p3.add(b32);
p3.add(b33);
p3.add(b34);
String[] sArr =
{"7","8","9","/","sqrt","4","5","6","*","%"
,"1","2","3","-","1/x","0","+/-",".","+","="};
JButton[] buttons = new JButton[sArr.length];
p4.setLayout(new GridLayout(4,5,3,3));
for(int i=0;i<sArr.length;i++){
buttons[i] = new JButton(sArr[i]);
if (sArr[i]=="+"||sArr[i]=="-"||sArr[i]=="*"||sArr[i]=="/"||sArr[i]=="=")
{
buttons[i].addActionListener(new OperatorListenter());
buttons[i].setForeground(Color.RED);
}else{
buttons[i].setForeground(Color.BLUE);
}
// if (sArr[i].compareTo("9")>0||sArr[i].compareTo("0")<0)
// {
// buttons[i].setForeground(Color.RED);
// }
// if(i%5==3){
// buttons[i].setForeground(Color.RED);
// }
p4.add(buttons[i]);
}
p.setLayout(null);
p.add(p1);
p.add(p2);
p.add(p3);
p.add(p4);
pp.add(p,BorderLayout.CENTER);
f.setLayout(null);
pp.setBounds(10,3,w-8,h-8);
f.add(pp);
pp.add(pForTextF,BorderLayout.NORTH);
f.setBounds(x,y,w,h);
f.setBackground(new Color(212,208,200));
//f.setResizable(false);
f.setVisible(true);
// f.addWindowListener(new WindowClosing());
f.addWindowListener(new WindowAdapter(){//匿名內部類
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//加Listener
for (int i=0;i<sArr.length;i++ )
{
if((buttons[i].getText().compareTo("0")>=0)&&(buttons[i].getText().compareTo("9")<=0)&&(buttons[i].getText()!="1/x")){
buttons[i].addActionListener(new NumButtonListener());
};
}
}
public static void main(String[] args){
new MyCalc("MyCalc",0,0,400,280);
}
class NumButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent a){
tf.setText(numAppend.append(a.getActionCommand()).toString());
}
};
class OperatorListenter implements ActionListener{
public void actionPerformed(ActionEvent a){
// if(numAppend.toString()!=null){
if((operator.length()>0)&&(numAppend.length()>0)&&(result.length()>0)){
double n = new Double(numAppend.toString()).doubleValue();
double r = new Double(result).doubleValue();
//執行+-*/運算
if(operator=="+"){
r+=n;
}else{
if(operator=="-"){
r-=n;
}else{
if(operator=="*"){
r*=n;
}else{
if(operator=="/"){
r=r/n;
}
}
}
}//+-*/運算
result = new Double(r).toString();
tf.setText(result);
}else{
if(numAppend.length()>0){
result = numAppend.toString();
}
}
if(operator=="="){
tf.setText(result);
operator=null;
}
operator = a.getActionCommand();
numAppend=new StringBuffer();
}
}
}
/*
class WindowClosing extends WindowAdapter
{
public void windowClosing(WindowEvent we){
System.exit(0);
}
};
*/