「java编写万年历」java万年历实验原理

博主:adminadmin 2023-03-19 03:27:10 472

今天给各位分享java编写万年历的知识,其中也会对java万年历实验原理进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

用JAVA编写一个万年历

import java.io.*;

class putout{

public void putout(int f,int x,int y){

int i;

int a[]= new int[40];

System.out.println(" 日 一 二 三 四 五 六 "+" "+f+"月");

for (i=0;ix;i++)

{System.out.print(" "); }

for(i=x;ix+y;i++)

a[i]=i-x+1;

for(i=x;ix+y;i++)

{

if ((i%7==0)(i0))

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

if (a[i]10)

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

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

}

System.out.println("\n");

}

}

class st{

public static void main(String args[])throws IOException{

putout p=new putout();

int year,mouth,y=1,t,i;

InputStreamReader ir;

BufferedReader in;

ir=new InputStreamReader(System.in);

in=new BufferedReader(ir);

System.out.print("请输入一个年份:");

String s=in.readLine();

year=Integer.parseInt(s);

if((year%4==0 year%100!=0)||(year%400==0))

mouth=1;

else

mouth=0;

y=year;

for(i=1;iyear;i++)

{if((i%4==0 i%100!=0)||(i%400==0))

y++;}

y=y%7;

for(i=1;i13;i++){

switch(i){

case 1: {p.putout(1,y,31);y=(y+31)%7;break;}

case 2: {p.putout(2,y,28+mouth);y=(y+28+mouth)%7;break;}

case 3: {p.putout(3,y,31);y=(y+31)%7;break;}

case 4: {p.putout(4,y,30);y=(y+30)%7;break;}

case 5: {p.putout(5,y,31);y=(y+31)%7;break;}

case 6: {p.putout(6,y,30);y=(y+30)%7;break;}

case 7: {p.putout(7,y,31);y=(y+31)%7;break;}

case 8: {p.putout(8,y,31);y=(y+31)%7;break;}

case 9: {p.putout(9,y,30);y=(y+30)%7;break;}

case 10: {p.putout(10,y,31);y=(y+31)%7;break;}

case 11: {p.putout(11,y,30);y=(y+30)%7;break;}

case 12: {p.putout(12,y,31);y=(y+31)%7;break;}

}

}

}

}

JAVA程序设计万年历怎么写?

没分的话……就只给你个代码吧……这个是用比较简单的语句写的:

import java.util.Scanner;

public class PrintCalendar {

/**

* 打印日历

* @param args

*/

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("请输入年:");

int year = input.nextInt();

System.out.println("请输入月:");

int month = input.nextInt();

//定义变量,存储该月多少天

int daysOfMonth = 0;

//计算该月多少天

switch(month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

daysOfMonth = 31;

break;

case 2:

if(year % 400 == 0 || (year % 4 == 0 year % 100 != 0))

{

daysOfMonth = 29;

}else

{

daysOfMonth = 28;

}

break;

default:

daysOfMonth = 30;

}

//System.out.println("该月"+daysOfMonth+"天");

//计算从1099.01.01到输入的年一共过去了多少天

//定义变量,存储总天数

int totalDays = 0;

for(int i=1900; iyear; i++)

{

if(i % 400 == 0 || (i % 4 == 0 i % 100 != 0))

{

totalDays += 366;

}else

{

totalDays += 365;

}

}

//输入的年中,从1月到输入的月,过去了多少天

for(int i=1; imonth; i++)

{

switch(i)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

totalDays += 31;

break;

case 2:

if(year % 400 == 0 || (year % 4 == 0 year % 100 != 0))

{

totalDays += 29;

}else

{

totalDays += 28;

}

break;

default:

totalDays += 30;

}

}

//输入月的1号是周几

int weekDay = totalDays % 7 + 1;

//计算需要打印的空格数

int spaces = weekDay % 7;

//打印日历,先打印日历的头

System.out.println("日\t一\t二\t三\t四\t五\t六");

//定义变量,存储打印了几次

int count = 0;

//打印空格

for(int i=1; i=spaces; i++)

{

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

count++;

}

//打印日历中的每一天

for(int i=1; i=daysOfMonth; i++)

{

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

count++;

if(count % 7 == 0)

{

System.out.println();

}

}

}

}

用java在文本框内怎么写万年历

/*日历*/

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import java.util.regex.Pattern;

import javax.swing.*;

public class Demo28 extends JFrame {

int m = 1;

String[] monthchoose = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",

"11", "12" }; // 存放月份的字符数组

String[] columnNames = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; // 存放星期的字符数组

Calendar ca = Calendar.getInstance();

Container contentPane = getContentPane();

VectorString vector = new VectorString();

String[][] date = new String[6][7]; // 表格的显示数据的格式

TextField tf; // 文本框的值代表的是年份

JComboBox jb;

JTable table; // 把日期用table的方式显示出来

public void getDate(String year, String month, String week, int Max_Day) {

int n = 0, b = 0;

// 动态把传进来月份的天数存放到容器里

for (int j = 1; j = Max_Day; j++) {

vector.add(String.valueOf(j));

}

//每次往table里添加数据的时候,都预先把原table里 的 数据清空

for(int x = 0;xdate.length;x++){

for(int y = 0;ydate[x].length;y++){

date[x][y] = null;

}

}

// 根据传进来月份的第一天是星期几,来构建Table

for (int a = Integer.parseInt(week) - 1; a  date[0].length; a++) {

date[0][a] = new String((String) vector.toArray()[n]);

n++;

}

for (int i = 1; i  date.length; i++) {

for (int j = 0; j  date[i].length; j++) {

if (n  vector.size()) {

date[i][j] = new String((String) vector.toArray()[n]);

n++;

} else

break;

}

}

// 把容器里的数据全部清除,以备下次再存放新的数据

while (b  vector.size()) {

vector.remove(b);

}

}

 public void chooseDate(String day) {

 JLabel label = new JLabel();

for (int y = 0; y  date.length; y++) {

for (int z = 0; z  date[y].length; z++) {

System.out.print(date[y][z] + " ");

System.out.println(day);

if (date[y][z] != null) {

if (date[y][z].equals(day)) {

table.setSelectionBackground(Color.yellow);

return;

}

}

}

}

}

public void paint() {

setTitle("日历");

setBounds(200, 200, 350, 178);

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

int m = 0;

String year = String.valueOf(ca.get(Calendar.YEAR)); // 得到当前的系统时间的年份,并把这个数值存放到year这个变量里

String month = String.valueOf(ca.get(Calendar.MONTH) + 1); // 得到当前的系统时间的月份,并把这个数值存放到month这个变量里

String day = String.valueOf(ca.get(Calendar.DATE)); // 得到当前的系统时间的日期,并把这个数值存放到day这个变量里

ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1

String week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几

int Max_Day = ca.getActualMaximum(Calendar.DATE); // 得到当前系统时间月份有多少天

getDate(year, month, week, Max_Day);

// 从月份数组里取出与当前系统时间一样的月份值

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

if (monthchoose[i].equals(month)) {

m = i;

}

}

JToolBar toolBar = new JToolBar();

JButton b1 = new JButton("<");

b1.addMouseListener(new myMouseListener1());

JButton b2 = new JButton(">");

b2.addMouseListener(new myMouseListener2());

JLabel j1 = new JLabel("年");

JLabel j2 = new JLabel("月");

tf = new TextField(5);

tf.addKeyListener(new myKeyListener());

tf.setText(year);

jb = new JComboBox(monthchoose);

jb.setSelectedIndex(m);

jb.addActionListener(new myActionListener3());

table = new JTable(date, columnNames);

//table.addMouseListener(new tableMouseListener());

table.setPreferredScrollableViewportSize(new Dimension(350, 150));

JScrollPane jsp = new JScrollPane(table);

contentPane.add(jsp, BorderLayout.CENTER);

chooseDate(day);

toolBar.add(b1);

toolBar.add(tf);

toolBar.add(b2);

toolBar.add(j1);

toolBar.add(jb);

toolBar.add(j2);

toolBar.setLocation(0, 0);

toolBar.setSize(400, 15);

contentPane.add(toolBar, BorderLayout.NORTH);

setVisible(true);

new Thread(new PaintThread()).start(); // 调用内部类PaintThread,根据里面的设置来重画

}

用Java编写一个万年历

G 年代标志符

y 年

M 月

d 日

h 时 在上午或下午 (1~12)

H 时 在一天中 (0~23)

m 分

s 秒

S 毫秒

E 星期

D 一年中的第几天

F 一月中第几个星期几

w 一年中第几个星期

W 一月中第几个星期

a 上午 / 下午 标记符

k 时 在一天中 (1~24)

K 时 在上午或下午 (0~11)

z 时区

参考地址:

编写 万年历java代码例如1900年一月一日是星期一。

import java.util.Calendar;

import java.util.Date;

import java.util.Scanner;

 

public class MyCalendar

{

    public static void main(String[] args)

    {

        Scanner scanner = new Scanner(System.in);

        String reg = "^(\\d+)[^\\d]+((0?[1-9])|(1[012]))$";

        while(true)

        {

            System.out.println("输入年月(年和月用非数字隔开:如2015.1)(什么都不输入直接退出)");

            String line = scanner.nextLine().trim();

            if("".equals(line))

            {

                scanner.close();

                break;

            }

            if(!line.matches(reg))

            {

                continue;

            }

            int year = Integer.parseInt(line.replaceAll(reg, "$1"));

            int month = Integer.parseInt(line.replaceAll(reg, "$2"));

            System.out.println("日\t一\t二\t三\t四\t五\t六");

            Calendar calendar = Calendar.getInstance();

            // 这个月的1号是星期几

            calendar.set(year, month - 1, 1);

            int day = calendar.get(Calendar.DAY_OF_WEEK);

            int start = Calendar.SUNDAY;

            calendar.add(Calendar.DATE, -day + start);

            while(start  day)

            {

                System.out.print(calendar.get(Calendar.DATE) + "\t");

                calendar.add(Calendar.DATE, 1);

                start++;

            }

            calendar.set(year, month - 1, 1);

            Date now = calendar.getTime();

            calendar.set(year, month, 1);

            Date next = calendar.getTime();

            for(Date cur = now; cur.before(next);)

            {

                calendar.setTime(cur);

                int x = calendar.get(Calendar.DATE);

                String tmp = x  10 ? "0" + x : x + "";

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

                if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)

                {

                    System.out.println();

                }

                calendar.add(Calendar.DATE, 1);

                cur = calendar.getTime();

            }

            calendar.add(Calendar.DATE, -1);

            int to = calendar.get(Calendar.DAY_OF_WEEK);

            int end = Calendar.SATURDAY;

            while(to  end)

            {

                calendar.add(Calendar.DATE, 1);

                int x = calendar.get(Calendar.DATE);

                String tmp = x  10 ? "0" + x : x + "";

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

                to++;

            }

            System.out.println();

        }

    }

}

JAVA编写一个多功能万年历程序

import java.text.SimpleDateFormat; import java.util.Calendar; public class TestDate { public static final String[] weeks = { "日", "一", "二", "三", "四", "五", "六" }; public static void main(String[] args) { Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR,2011);//2011年 c.set(Calendar.MONTH,0);//java中Calendar类,月从0开始, 0代表一月 c.set(Calendar.DATE,1);//1号 int day = c.get(Calendar.DAY_OF_WEEK);//获致是本周的第几天地, 1代表星期天...7代表星期六 System.out.println(new SimpleDateFormat( "yyyy-MM-dd ").format(c.getTime())); System.out.println("星期" + weeks[day-1]); } } 把以上测试代码写作一个方法 方法的参数名为年月日, 即可。当然Calendar 还有很多功能,比如一周的第几天,一年的第几个月……

关于java编写万年历和java万年历实验原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。