「万年历用java」万年历用电每天用多少

博主:adminadmin 2022-12-23 21:03:10 50

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

本文目录一览:

用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编写万年历!

/*

题目:输出任意年份任意月份的日历表(公元后)

思路:

    1.已知1年1月1日是星期日,1 % 7 = 1 对应的是星期日,2 % 7 = 2 对应的是星期一,以此类推;

    2.计算当年以前所有天数+当年当月1号之前所有天数;

      a.年份分平年闰年,平年365天,闰年366天;

      b.闰年的判断方法year % 400 == 0 || (year % 100 != 0  year % 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 (year  1) {                        //判断非法输入年份

            System.out.println("输入错误!");

            return;

        }

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

        int month = sc.nextInt();            //月份

        if (month  1 || month  12) {        //判断非法输入月份

            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 != 0  year % 4 == 0)) {    //判断当前年份是否是闰年

            for (int i = 0 ; i  month ; i ++ ) {    //for循环计算当月之前总天数

                //计算当前月份之前的所有天数

                beforeMonthTotalDay = beforeMonthTotalDay + arrLeapYear[i];

            }

            //判断当月1日是星期几

            int totalDay = beforeYearTotalDay + beforeMonthTotalDay + 1;

            int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日

            for (int i = 0 ; i  (week - 1 + 7) % 7 ; i ++) {    //如果写成i  (week-1)会出现i-1的情况

                System.out.print("    ");//输出开头空白

            }

            for (int i = 1 ;i = arrLeapYear[month] ;i ++ ) {    //for循环输出各月天数

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

                if (i  10 ) {        //小于10的数补一个空格,以便打印整齐

                    System.out.print(" ");

                }

                if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrLeapYear[month]) {//每逢星期六/尾数换行

                    System.out.println();

                }

            }

        } else {        //不是闰年就是平年

            for (int i = 0 ; i  month ; i ++ ) {    //for循环计算出当月之前月份总天数

                beforeMonthTotalDay = beforeMonthTotalDay + arrNormalYear[i];

            }

            //判断当月1日是星期几

            int totalDay = beforeYearTotalDay + beforeMonthTotalDay + 1;

            int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日

            for (int i = 0 ; i  (week - 1 + 7) % 7 ; i ++) {    //如果写成i  (week-1)会出现i-1的情况

                System.out.print("    ");//输出开头空白

            }

            for (int i = 1 ;i = arrNormalYear[month] ;i ++ ) {//for循环输出各月天数

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

                if (i  10 ) {            //小于10的数补一个空格,以便打印整齐

                    System.out.print(" ");

                }

                if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrNormalYear[month]) {//每逢星期六/尾数换行

                    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语言 写出一个万年历呢? 要求自己输入年份 自动出现月 日 以及对应的星期

如果要月历,只要把月份循环那里修改下,直接调用月历方法既可

import java.text.DateFormatSymbols;

import java.util.Calendar;

import javax.swing.JOptionPane;

public class YearCalendar {

public static void main(String[] args) {

final String title = getCalTitle();

String input = JOptionPane.showInputDialog("Please input year");

try{

if(!input.trim().matches("^\\d{4}$")){

throw new NumberFormatException();

}

int year = Integer.parseInt(input.trim());

System.out.println("------- Calendar For Year " + year + " ----------------");

String[] monthTitles = new DateFormatSymbols().getMonths();

for(int month = Calendar.JANUARY; month = Calendar.DECEMBER; month++){

System.out.println("\t********** " + monthTitles[month] + " *********");

System.out.println(title);

generateMonthlyCalendar(year, month);

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

}

}catch(NumberFormatException nbFmtExp){

JOptionPane.showMessageDialog(null, "Error data foramt! Date should be 4 digits only format yyyy");

System.exit(0);

}

}

private static String getCalTitle() {

StringBuffer sb = new StringBuffer();

String[] ary = new DateFormatSymbols().getShortWeekdays();

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

sb.append(ary[i]+ "\t");

}

return sb.toString();

}

private static void generateMonthlyCalendar(int year, int month) {

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, year);

cal.set(Calendar.MONTH, month);

cal.set(Calendar.DATE, 1);

int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

int i = 0;

for(i = Calendar.SUNDAY; i cal.get(Calendar.DAY_OF_WEEK); i++){

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

}

while(cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY){

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

cal.add(Calendar.DATE, 1);

}

int weekDay = Calendar.SATURDAY;

int day = cal.get(Calendar.DATE);

while(day = maxDay){

if(weekDay == Calendar.SATURDAY){

System.out.println();

weekDay = Calendar.SUNDAY;

}else{

weekDay++;

}

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

}

}

}

--------------------------------JDK 1.5结果

------- Calendar For Year 2011 ----------------

********** January *********

Sun Mon Tue Wed Thu Fri Sat

1

2 3 4 5 6 7 8

9 10 11 12 13 14 15

16 17 18 19 20 21 22

23 24 25 26 27 28 29

30 31

********** February *********

Sun Mon Tue Wed Thu Fri Sat

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28

********** March *********

Sun Mon Tue Wed Thu Fri Sat

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29 30 31

********** April *********

Sun Mon Tue Wed Thu Fri Sat

1 2

3 4 5 6 7 8 9

10 11 12 13 14 15 16

17 18 19 20 21 22 23

24 25 26 27 28 29 30

********** May *********

Sun Mon Tue Wed Thu Fri Sat

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31

********** June *********

Sun Mon Tue Wed Thu Fri Sat

1 2 3 4

5 6 7 8 9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29 30

********** July *********

Sun Mon Tue Wed Thu Fri Sat

1 2

3 4 5 6 7 8 9

10 11 12 13 14 15 16

17 18 19 20 21 22 23

24 25 26 27 28 29 30

31

********** August *********

Sun Mon Tue Wed Thu Fri Sat

1 2 3 4 5 6

7 8 9 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 29 30 31

********** September *********

Sun Mon Tue Wed Thu Fri Sat

1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30

********** October *********

Sun Mon Tue Wed Thu Fri Sat

1

2 3 4 5 6 7 8

9 10 11 12 13 14 15

16 17 18 19 20 21 22

23 24 25 26 27 28 29

30 31

********** November *********

Sun Mon Tue Wed Thu Fri Sat

1 2 3 4 5

6 7 8 9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29 30

********** December *********

Sun Mon Tue Wed Thu Fri Sat

1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 31

如何用Java编写一个万年历

/*

题目:输出任意年份任意月份的日历表(公元后)

思路:

    1.已知1年1月1日是星期日,1 % 7 = 1 对应的是星期日,2 % 7 = 2 对应的是星期一,以此类推;

    2.计算当年以前所有天数+当年当月1号之前所有天数;

      a.年份分平年闰年,平年365天,闰年366天;

      b.闰年的判断方法year % 400 == 0 || (year % 100 != 0  year % 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 (year  1) {                        //判断非法输入年份

            System.out.println("输入错误!");

            return;

        }

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

        int month = sc.nextInt();            //月份

        if (month  1 || month  12) {        //判断非法输入月份

            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 != 0  year % 4 == 0)) {    //判断当前年份是否是闰年

            for (int i = 0 ; i  month ; i ++ ) {    //for循环计算当月之前总天数

                //计算当前月份之前的所有天数

                beforeMonthTotalDay = beforeMonthTotalDay + arrLeapYear[i];

            }

            //判断当月1日是星期几

            int totalDay = beforeYearTotalDay + beforeMonthTotalDay + 1;

            int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日

            for (int i = 0 ; i  (week - 1 + 7) % 7 ; i ++) {    //如果写成i  (week-1)会出现i-1的情况

                System.out.print("    ");//输出开头空白

            }

            for (int i = 1 ;i = arrLeapYear[month] ;i ++ ) {    //for循环输出各月天数

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

                if (i  10 ) {        //小于10的数补一个空格,以便打印整齐

                    System.out.print(" ");

                }

                if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrLeapYear[month]) {//每逢星期六/尾数换行

                    System.out.println();

                }

            }

        } else {        //不是闰年就是平年

            for (int i = 0 ; i  month ; i ++ ) {    //for循环计算出当月之前月份总天数

                beforeMonthTotalDay = beforeMonthTotalDay + arrNormalYear[i];

            }

            //判断当月1日是星期几

            int totalDay = beforeYearTotalDay + beforeMonthTotalDay + 1;

            int week = totalDay % 7;//已知1年1月1日是星期日,即模7得1对应的是星期日

            for (int i = 0 ; i  (week - 1 + 7) % 7 ; i ++) {    //如果写成i  (week-1)会出现i-1的情况

                System.out.print("    ");//输出开头空白

            }

            for (int i = 1 ;i = arrNormalYear[month] ;i ++ ) {//for循环输出各月天数

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

                if (i  10 ) {            //小于10的数补一个空格,以便打印整齐

                    System.out.print(" ");

                }

                if (i % 7 == ((7-(week - 1)) % 7 ) || i == arrNormalYear[month]) {//每逢星期六/尾数换行

                    System.out.println();

                }

            }

        }

    }

}

万年历用java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于万年历用电每天用多少、万年历用java的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。