制作年历java代码 用java制作万年历

高分求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(newSimpleDateFormat( "yyyy-MM-dd ").format(c.getTime()));
System.out.println("星期"weeks[day-1]);
}
}
用JAVA编写一个万年历importjava.io.*;
classputout{
publicvoidputout(intf,intx,inty){
inti;
inta[]=newint[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]);
elseSystem.out.print("" a[i]);
}
System.out.println("\n");
}
}
classst{
publicstaticvoidmain(Stringargs[])throwsIOException{
putoutp=newputout();
intyear,mouth,y=1,t,i;
InputStreamReaderir;
BufferedReaderin;
ir=newInputStreamReader(System.in);
in=newBufferedReader(ir);
System.out.print("请输入一个年份:");
Strings=in.readLine();
year=Integer.parseInt(s);
if((year%4==0year0!=0)||(year@0==0))
mouth=1;
else
mouth=0;
y=year;
for(i=1;iyear;i)
{if((i%4==0i0!=0)||(i@0==0))
y;}
y=y%7;
for(i=1;i13;i){
switch(i){
case1:{p.putout(1,y,31);y=(y 31)%7;break;}
case2:{p.putout(2,y,28 mouth);y=(y 28 mouth)%7;break;}
case3:{p.putout(3,y,31);y=(y 31)%7;break;}
case4:{p.putout(4,y,30);y=(y 30)%7;break;}
case5:{p.putout(5,y,31);y=(y 31)%7;break;}
case6:{p.putout(6,y,30);y=(y 30)%7;break;}
case7:{p.putout(7,y,31);y=(y 31)%7;break;}
case8:{p.putout(8,y,31);y=(y 31)%7;break;}
case9:{p.putout(9,y,30);y=(y 30)%7;break;}
case10:{p.putout(10,y,31);y=(y 31)%7;break;}
case11:{p.putout(11,y,30);y=(y 30)%7;break;}
case12:{p.putout(12,y,31);y=(y 31)%7;break;}
}
}
}
}
编写 万年历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, -daystart);
while(startday)
{
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 = x10 ? "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(toend)
{
calendar.add(Calendar.DATE, 1);
int x = calendar.get(Calendar.DATE);
String tmp = x10 ? "0"x : x"";
System.out.print(tmp"\t");
to;
}
System.out.println();
}
}
}
如何 做JAVA 万年历import java.util.Calendar;
public class DateBean
{
private Calendar calendar = Calendar.getInstance();
public DateBean(int year, int month, int date){
calendar.set(year,month-1,date);
}
/*
*获取月份中制作年历java代码的第一个制作年历java代码的星期数
*1-7星期日到星期六
*@return int
*/
public int getFistWeek(){
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
calendar.set(year,month,1);
return calendar.get(Calendar.DAY_OF_WEEK);
}
/*
*当月最大天数
*@return int
*/
public int getMaxDate(){
int maxDate = calendar.getActualMaximum(Calendar.DATE);
return maxDate;
}
public void showCalendar(){
【制作年历java代码 用java制作万年历】System.out.println("日\t一\t二\t三\t四\t五\t六");
int min_week = getFistWeek();
int maxDate = getMaxDate();
int tempDate = 0;
//共有几周
int rowsCount = (maxDate-(7-min_week))/7;
if((maxDate-(7-min_week))%7 == 0){
rowsCount= 1;
}else{
rowsCount= 2;
}
for(int i=0; irowsCount; i){
int j = 0;
if(i==0){
j = min_week-1;
for(int o=0; omin_week-1; o){
System.out.print(" \t");
}
}
for(; j7; j){
if(tempDate=maxDate){
break;
}
tempDate;
System.out.print(tempDate "\t");
}
System.out.println();
}
}
public static void main(String[] args){
DateBean dateBean = new DateBean(2010,11,19);
dateBean.showCalendar();
}
}
JAVA万年历代码/*
题目:输出任意年份任意月份制作年历java代码的日历表(公元后)
思路:
1.已知1年1月1日是星期日,1 % 7 = 1 对应制作年历java代码的是星期日,2 % 7 = 2 对应的是星期一,以此类推;
2.计算当年以前所有天数 当年当月1号之前所有天数;
a.年份分平年闰年,平年365天,闰年366天;
b.闰年的判断方法year % 400 == 0 || (year % 100 != 0year % 4 == 0)若为真,则为闰年否则为平年;
c.定义平年/闰年数组,包含各月天数;
d.遍历数组求和,计算当年当月前总天数;
e.当年以前所有天数 当年当月前总天数 1即为1年1月1日到当年当月1日的总天数;
3.总天数对7取模,根据结果判断当月1号是星期几,输出空白区域;
4.输出当月日历表,逢星期六换行
*/
import java.util.Scanner;
class FindMonthList {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();//年份
if (year1) {//判断非法输入年份
System.out.println("输入错误!");
return;
}
System.out.println("请输入月份:");
int month = sc.nextInt();//月份
if (month1 || month12) {//判断非法输入月份
System.out.println("输入错误!");
return;
}
//输出表头
System.out.println("-------"year" 年 "month" 月 ""-------");
System.out.println();
System.out.println("日一二三四五六");
//计算当前年份以前所有天数beforeYearTotalDay;每4年一个闰年,闰年366天,平年365天
int beforeYearTotalDay = ((year - 1) / 4 * 366)(year-1 - ((year - 1) / 4)) * 365;
int[] arrLeapYear = {0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年各月天数int数组
int[] arrNormalYear = {0,31,28,31,30,31,30,31,31,30,31,30,31};//平年各月天数int数组
int beforeMonthTotalDay = 0;//定义本年当月之前月份的总天数
if (year % 400 == 0 || (year % 100 != 0year % 4 == 0)) {//判断当前年份是否是闰年
for (int i = 0 ; imonth ; i) {//for循环计算当月之前总天数
//计算当前月份之前的所有天数
beforeMonthTotalDay = beforeMonthTotalDayarrLeapYear[i];
}
//判断当月1日是星期几
int totalDay = beforeYearTotalDaybeforeMonthTotalDay1;
int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日
for (int i = 0 ; i(week - 17) % 7 ; i) {//如果写成i(week-1)会出现i-1的情况
System.out.print("");//输出开头空白
}
for (int i = 1 ;i = arrLeapYear[month] ;i) {//for循环输出各月天数
System.out.print(i"");
if (i10 ) {//小于10的数补一个空格,以便打印整齐
System.out.print(" ");
}
if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrLeapYear[month]) {//每逢星期六/尾数换行
System.out.println();
}
}
} else {//不是闰年就是平年
for (int i = 0 ; imonth ; i) {//for循环计算出当月之前月份总天数
beforeMonthTotalDay = beforeMonthTotalDayarrNormalYear[i];
}
//判断当月1日是星期几
int totalDay = beforeYearTotalDaybeforeMonthTotalDay1;
int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日
for (int i = 0 ; i(week - 17) % 7 ; i) {//如果写成i(week-1)会出现i-1的情况
System.out.print("");//输出开头空白
}
for (int i = 1 ;i = arrNormalYear[month] ;i) {//for循环输出各月天数
System.out.print(i"");
if (i10 ) {//小于10的数补一个空格,以便打印整齐
System.out.print(" ");
}
if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrNormalYear[month]) {//每逢星期六/尾数换行
System.out.println();
}
}
}
}
}
显示效果:
用java语言编写万年历给你一个现成制作年历java代码的制作年历java代码,我自己写的 。
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
public class WanNianLi extends JFrame implements ActionListener {
private static int year,month,days;
private JButton[] btn=new JButton[days];
WanNianLi() {
super("万年历");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayout bl=new GridLayout(5,7);
JPanel pane=new JPanel();
pane.setLayout(bl);
for (int i=0;idays;i) {
int temp=i 1;
btn[i]=new JButton("" temp);
btn[i].addActionListener(this);
pane.add(btn[i]);
}
setContentPane(pane);
pack();
setLookAndFeel();
setVisible(true);
}
public static void main(String[] args) {
if (args.length0)
year=Integer.parseInt(args[0]);
else
year=1982;
if (args.length1)
month=Integer.parseInt(args[1]);
else
month=1;
GetDays gd=new GetDays(year,month);
days=gd.getDays();
new WanNianLi();
}
public void actionPerformed(ActionEvent evt) {
Object src=https://www.04ip.com/post/evt.getSource();
for (int i=0;idays;i)
if (src=https://www.04ip.com/post/=btn[i]) {
int day=i 1;
GetWeekday gw=new GetWeekday(year,month,day);
String str="";
switch (gw.getWeekday()) {
case 1:
str="天";
break;
case 2:
str="一";
break;
case 3:
str="二";
break;
case 4:
str="三";
break;
case 5:
str="四";
break;
case 6:
str="五";
break;
case 7:
str="六";
break;
}
setTitle(year "年" month "月" day "日" "星期" str);
repaint();
}
}
private void setLookAndFeel() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
SwingUtilities.updateComponentTreeUI(this);
}catch(Exception e){
System.out.print(e.toString());
}
}
}
//////////////
//获取星期几//
//////////////
class GetWeekday {
private Calendar cal=Calendar.getInstance();
private static int weekday;
public int getWeekday() {
return weekday;
}
GetWeekday(int y,int m,int d) {
cal.clear();
cal.set(Calendar.YEAR,y);
cal.set(Calendar.MONTH,m-1);
cal.set(Calendar.DAY_OF_MONTH,d);
weekday=cal.get(Calendar.DAY_OF_WEEK);
}
}
////////////////////
//获取当前月的天数//
////////////////////
class GetDays {
private static int days;
public int getDays() {
return days;
}
GetDays(int y,int m) {
GregorianCalendar gc=new GregorianCalendar();
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
if (gc.isLeapYear(y))
days=29;
else
days=28;
break;
}
}
}
制作年历java代码的介绍就聊到这里吧 , 感谢你花时间阅读本站内容 , 更多关于用java制作万年历、制作年历java代码的信息别忘了在本站进行查找喔 。

    推荐阅读