精华内容
下载资源
问答
  • Java打印日历

    2016-10-26 05:13:49
    Eclipse开发的Java小程序,打印日历。很简单
  • java打印日历

    2020-01-16 10:07:04
    *方法描述: 默认显示当月日历<br> *创建时间: 2017年7月15日 *@throws SQLException */ public static void showEnMonthCal(GregorianCalendar d) throws SQLException { Locale...
    /**
    	 * 
    	 *作者 : iechenyb<br>
    	 *方法描述: 默认显示当月日历<br>
    	 *创建时间: 2017年7月15日
    	 *@throws SQLException
    	 */
    	public static void showEnMonthCal(GregorianCalendar d) throws SQLException {
    		Locale.setDefault(Locale.ENGLISH);
    		int month = d.get(Calendar.MONTH); // 用于循环打印当前月份的月历__月份判断
    		String cellLen="%6s";
    		String split="\n-------------------------------------------";
    		String weekdays[] = new DateFormatSymbols().getShortWeekdays(); // 保存7个星期名
    		long todayStr=DateUnsafeUtil.date2long8(d.getTime());
    		System.out.printf(cellLen,"今日:"+todayStr+"["+HolidayH2DbUtils.getToday().getDesc()+"]\n");
    		System.out.println("HD:节假日,TD:交易日,WD:周六|周日,CD:今天");
    		System.out.println(split.substring(2));
    		for (int i = 1; i < 8; ++i) {
    			System.out.print(String.format(cellLen, weekdays[i]));
    		}
    		System.out.println(split);
    		d.set(Calendar.DAY_OF_MONTH, 1); // 设置d的日期为当月1号
    		int weeknameofFirstday = d.get(Calendar.DAY_OF_WEEK);// 获得当月1号的星期名
    		int cnt = 1;
    		while (weekdays[cnt] != weekdays[weeknameofFirstday]) // 打印日历第一行,判断当月1号从第一行的哪里开始打印
    		{
    			System.out.printf(cellLen," ");
    			++cnt;
    		}
    		do {
    			int day = d.get(Calendar.DAY_OF_MONTH);
    			Holiday holiday = HolidayH2DbUtils.getSomeDay(d.getTime());
    			String tip = holiday.getCalEnDesc();
    			String showDay="";
    			if(day<10) showDay="0"+day;
    			else showDay = ""+day;
    			if(holiday.isTradeDay()){
    				System.out.printf(cellLen,showDay+tip);
    			}else{
    				System.out.printf(cellLen,"*"+showDay+tip);
    			}
    			if (weekdays[d.get(Calendar.DAY_OF_WEEK)] == weekdays[7]) // 判断是否需要换行打印
    			{	
    				System.out.println(split);   
    			}
    			d.add(Calendar.DAY_OF_MONTH, 1);
    		} while (d.get(Calendar.MONTH) == month);
    		System.out.println(split);
    	}

    结果如下:* 代表非交易日。

     

    展开全文
  • java 打印日历

    2016-11-20 23:56:05
    java 打印日历
  • Java打印日历

    2021-03-09 19:25:29
    首先是,遇到一个问题,输入年份和月份,需要打印这个月的日历,网上有不少代码,但我用了几个感觉都不是很靠谱。然后经过一番探索,最后敲定了下面这个程序:import java.util.Arrays;import java.util.Calendar;...

    今天来吐槽一下Java的Calendar类的使用问题,反正我是弄了半天。

    首先是,遇到一个问题,输入年份和月份,需要打印这个月的日历,网上有不少代码,但我用了几个感觉都不是很靠谱。

    然后经过一番探索,最后敲定了下面这个程序:

    import java.util.Arrays;

    import java.util.Calendar;

    import java.util.List;

    import java.util.Scanner;

    public class MyCal {

    public static void main(String[] args) {

    try (Scanner sc = new Scanner(System.in)) {

    System.out.println("please input the year:");

    int year = sc.nextInt();

    System.out.println("please input the month:");

    int month = sc.nextInt();

    List MONTH_LIST = Arrays.asList(

    "Jan", "Feb", "Mar", "Apr", "May", "Jun",

    "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"

    );

    System.out.printf(" %s, %4d\n", MONTH_LIST.get(month - 1), year);

    System.out.println("-----------------------------");

    System.out.println(" Sun Mon Tue Wed Thu Fri Sat");

    Calendar c = Calendar.getInstance();

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

    int totalDay = c.getActualMaximum(Calendar.DATE);

    for (int i = 1; i < c.get(Calendar.DAY_OF_WEEK); i++)

    System.out.print(" ");

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

    c.set(year, month-1, i);

    System.out.printf("%4d", i);

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

    System.out.println("");

    }

    }

    }

    }

    set(year,month,date)的问题

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

    网上的代码真的不靠谱,没几个把API解释清楚的。

    我最后还是去翻官方API才发现,第二个参数月份是从0开始的,而第三个参数日期却是从1开始的,着实坑了我一把。

    getActualMaximum的用法

    int totalDay = c.getActualMaximum(Calendar.DATE);

    getActualMaximum方法可以直接获取Calendar中一个字段的最大值,getActualMaximum(Calendar.DATE)的意思就是获取这个月日期的最大值。

    还可以这样用:

    getActualMaximum(Calendar.MONTH)获取月份的最大值

    getActualMaximum(Calendar.HOUR)获取小时数的最大值

    是否加get

    再说一下c.get(Calendar.DAY_OF_WEEK)和Calendar.DAY_OF_WEEK的区别,加不加get有很大的区别,我一开始也没注意,Calendar内部实现和get的返回值是有偏差的,好像是1。

    如果不注意,可能就像我一样,调日期的格式调了半天。

    Calendar.DAY_OF_WEEK

    Calendar.DAY_OF_WEEK这个函数网上的博客很多也没讲清楚,其实它的功能是获得当前日期是礼拜几。

    但是就像上面说的一样,如果外面不套一个get,实际上你获得的和Calendar.SATURDAY是有偏差的,例如Calendar.DAY_OF_WEEK==Calendar.SATURDAY和c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY是不一样的。

    程序逻辑

    先在循环体外面打印空格,分析一下,应该是填入get(Calendar.DAY_OF_WEEK)个Tab(四个空格)。

    循环体里面的逻辑也很简单,每次都重新设置一下日期,从这个月的1号开始设置到最后一天,如果这天正好是星期六,那么下一次就需要换行输出。

    测试

    最后的结果大概是这样的:

    please input the year:

    2019

    please input the month:

    11

    Nov, 2019

    -----------------------------

    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

    原文:https://www.cnblogs.com/nonlinearthink/p/11922368.html

    展开全文
  • 打印日历(java)

    2015-09-27 09:25:59
    根据一定规律打印特定年月的日历信息 特点:可扩展
  • java打印日历方法

    2021-03-17 15:24:51
    标签:日历package cn.baokx.test;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;public class Test {...

    标签:日历package cn.baokx.test;

    import java.text.ParseException;

    import java.text.SimpleDateFormat;

    import java.util.Calendar;

    import java.util.Date;

    import java.util.GregorianCalendar;

    public class Test {

    public static void main(String ... args) {

    String date_str = "2015-04-10";

    getMyCalendar(date_str);

    }

    private static void getMyCalendar(String date_str) {

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    try {

    Date date = sdf.parse(date_str);

    Calendar calendar = new GregorianCalendar();

    calendar.setTime(date);

    //获取给定的时间是几号

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

    //将日期改为该月1号

    calendar.set(Calendar.DATE, 1);

    //获取该月1号是本周第几天

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

    //获取该月的最后一天是几号

    int lastDay = calendar.getActualMaximum(Calendar.DATE);

    //每个月多需要6行7列即可显示完整

    int [] days = new int[6*7];

    //为数组填充值

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

    days[i+(firstDayOfWeek-1)-1] = i;

    }

    //打印日历

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

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

    if(days[i]!=0){

    if(days[i]==day){

    System.out.print("*");

    }

    System.out.print(days[i]);

    }

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

    if((i+1)%7==0){

    System.out.println("");

    }

    }

    } catch (ParseException e) {

    e.printStackTrace();

    }

    }

    }

    标签:日历

    原文:http://blog.csdn.net/baokx/article/details/44986463

    展开全文
  • [基础]java打印日历

    2021-04-15 14:45:55
    importjava.text.DateFormatSymbols;importjava.util.Calendar;importjava.util.GregorianCalendar;importjava.util.Locale;publicclassTestCalendar{publicstaticvoidmain(String[]args){Locale.setDef...

    import java.text.DateFormatSymbols;

    import java.util.Calendar;

    import java.util.GregorianCalendar;

    import java.util.Locale;

    public class TestCalendar {

    public static void main(String[] args) {

    Locale.setDefault(Locale.US);

    GregorianCalendar cal = new GregorianCalendar();

    int today = cal.get(Calendar.DAY_OF_MONTH); // 获得日期

    int month = cal.get(Calendar.MONTH); // 获取月份 0-11

    cal.set(Calendar.DAY_OF_MONTH, 1); // 设置成当月的第一天

    int weekday = cal.get(Calendar.DAY_OF_WEEK);// 看1号是是当前周的第几天,US星期天是第一天

    int firstDayOfWeek = cal.getFirstDayOfWeek();// 获取1号所在的这一周的第一天,1在US代表星期天

    int indent = 0;// counter,看和当前周的第一天相差几天

    while (weekday != firstDayOfWeek) { // 说明这一周的第一天是跨月的,属于上个月

    indent++;

    cal.add(Calendar.DAY_OF_MONTH, -1);

    weekday = cal.get(Calendar.DAY_OF_WEEK);

    }

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

    do {

    System.out.printf("%4s", weekdayNames[weekday]);//用4个字符的宽度打印后面的字符串,不足4位用空格补齐

    cal.add(Calendar.DAY_OF_MONTH, 1);

    weekday = cal.get(Calendar.DAY_OF_WEEK);

    } while (weekday != firstDayOfWeek);//while do 和 do while 的区别是,当while判断不成立时. do while循环至少执行一次

    System.out.println();

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

    System.out.print("    ");//4个字符宽度.和title宽度保持一致

    }

    cal.set(Calendar.DAY_OF_MONTH, 1);//重置为需要打印开始的日期,本月的第一天

    do {

    // print day

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

    System.out.printf("%3d", day);//用3个字符的宽度打印后面的十进制整数,不足4位用空格补前面

    if (day == today)

    System.out.print("*");

    else

    System.out.print(" ");

    cal.add(Calendar.DAY_OF_MONTH, 1);

    weekday = cal.get(Calendar.DAY_OF_WEEK);

    if (weekday == firstDayOfWeek)

    System.out.println();

    } while (cal.get(Calendar.MONTH) == month);

    if (weekday != firstDayOfWeek)

    System.out.println();

    }

    }

    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

    展开全文
  • 主要为大家详细介绍了java利用Calendar类打印日历,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java实现打印日历

    千次阅读 2021-03-01 07:50:50
    本文实例为大家分享了java实现打印日历的具体代码,供大家参考,具体内容如下效果图代码:/***需要实现的目标:根据输入的年月打印出本月的日历表*说明:1900年1月1日刚好是星期一,所以需要计算出从1900 年到当前...
  • java实现日历打印

    2020-12-25 09:57:18
    通过java实现日历打印
  • Java 打印日历

    2021-11-09 12:51:24
    打印日历 import java.util.Calendar; import java.util.Scanner; /** * 本类用于演示:打印日历 */ public class HomeWork { public static void main(String[] args) { Scanner scanner = new Scanner(System...
  • 使用java 打印日历

    2021-03-06 07:00:49
    /** 打印从1900年到2、year年的日历*/import java.util.Scanner;public class Calender {public static int year = Integer.MIN_VALUE;public static int month = Integer.MIN_VALUE;private static int[] m =...
  • Java打印日历

    2020-02-14 17:19:43
    //打印日历 public class Rili1 { public static void main(String[] args) { // TODO Auto-generated method stub //1.设置变量并录入,年,月,日, int year = 0,month = 0,day = 0; Scanner...
  • Java打印日历表-Calendar类的使用 今天来吐槽一下Java的Calendar类的使用问题。 问题描述 输入年份和月份,打印这个月的日历。 (网上有不少代码,但我用了几个感觉都不是很靠谱) 程序 然后经过一番探索,最后敲定...
  • 随机输入日期计算星期几,打印任意一年的日历 已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几 实现思路: 一、知道1900年1月1日为星期一,求输入的年份月份与1900年1月1日相隔的总天数。闰年366天,...
  • 日历打印java实现

    2021-03-09 21:00:41
    23 /**4 *打印1900年之后的日历5 *@author:Archer-LCY6 *@date:2018年1月19日上午10:20:397 */8 public classCalendal {9 //注意全局变量声明的位置10 /**用户输入的年份*/11 public static int year =Intege...
  • import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Scanner;public class Main {public static void mai...
  • java打印输出日历

    2020-07-15 20:31:24
    通过循环和判断控制打印输出 java代码实现: import java.util.Scanner; public class day03a { //判断是否是闰年 public static void main(String[] args) { //声明变量 int year; // 年

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,845
精华内容 5,538
关键字:

java打印日历

java 订阅
友情链接: aloha.rar