博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 日历格式转化
阅读量:4156 次
发布时间:2019-05-26

本文共 3323 字,大约阅读时间需要 11 分钟。

java 日历格式转化

标签: java基础


把“日一二三四五六”格式的日历转化为“一二三四五六日”格式。

//Example8_16import java.util.*;public class Example8_16 {
public static void main(String[] args) { CalendarBean cb = new CalendarBean(); System.out.printf("please input year and month: "); //输入年份和月份 Scanner reader = new Scanner(System.in); int year = 0, month = 0; cb.setYear(year = reader.nextInt()); cb.setMonth(month = reader.nextInt()); String [] a = cb.getCalendar(); //返回号码的一维数组 char [] str = "日一二三四五六".toCharArray(); System.out.printf("----------------------------\n%14d.%-2d\n", year, month); //打印表头 System.out.printf("----------------------------\n"); for(char c : str) System.out.printf("%3c", c); for(int i = 0; i < a.length; i++) //输出数组a { if(i % 7 == 0) System.out.println(""); //换行 System.out.printf("%4s", a[i]); } }}
//CalendarBeanimport java.util.Calendar;public class CalendarBean{
int year = 0, month = 0; public void setYear(int year) { this.year = year; } public void setMonth(int month) { this.month = month; } public String [] getCalendar() { String [] a = new String[42]; //日历最多可达6行 Calendar rili = Calendar.getInstance(); rili.set(year, month - 1, 1); //模拟翻日历 int weekDay = rili.get(Calendar.DAY_OF_WEEK) - 1; //计算出1号的星期 int day = 0; if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) day = 31; if(month == 4 || month == 6 || month == 9 || month == 11) day = 30; if(month == 2) { if(((year % 4 == 0) && (year % 100 != 0)) || year % 400 == 0) day = 29; else day = 28; } for(int i = 0; i < weekDay; i++) a[i] = " "; //日历顺序输出,格式控制 for(int i = weekDay, n = 1; i < weekDay + day; i++) { a[i] = String.valueOf(n); n++; } for(int i = weekDay + day; i < a.length; i++) a[i] = " "; return a; }}

原日历测试样例

2017.11
2020.2

修改Example8_16.java, CalendarBean.java不变

//Example8_16import java.util.*;public class Example8_16 {
public static void main(String[] args) { CalendarBean cb = new CalendarBean(); System.out.printf("please input year and month: "); //输入年份和月份 Scanner reader = new Scanner(System.in); int year = 0, month = 0; cb.setYear(year = reader.nextInt()); cb.setMonth(month = reader.nextInt()); String [] a = cb.getCalendar(); char [] str = "一二三四五六日".toCharArray(); System.out.printf("----------------------------\n%14d.%-2d\n", year, month); //打印表头 System.out.printf("----------------------------\n"); for(char c : str) System.out.printf("%3c", c); System.out.println(""); int sunday = 0, six = 0; //日一二三四五六 -> 一二三四五六日 //有两种情况:(1)原日历第一行第一列为空,也就是a[0] == " ";(2)不为空 if(a[0] == " ") sunday = 7; for(int i = 1; i < a.length; i++) { System.out.printf("%4s", a[i]); six++; if(six == 6) { if(sunday < a.length) System.out.printf("%4s\n", a[sunday]); sunday += 7; i++; six = 0; } } }}

修改后的日历测试样例

第一天
February

你可能感兴趣的文章
OpenFeign学习(六):OpenFign进行表单提交参数或传输文件
查看>>
Ribbon 学习(三):RestTemplate 请求负载流程解析
查看>>
深入理解HashMap
查看>>
XML生成(三):JDOM生成
查看>>
Ubuntu Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)
查看>>
C#入门
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
数据库
查看>>
nginx反代 499 502 bad gateway 和timeout
查看>>
linux虚拟机安装tar.gz版jdk步骤详解
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
异常 Java学习Day_15
查看>>
Mysql初始化的命令
查看>>
浅谈HTML
查看>>