System.out.println("请输入日期(按照格式:2030-3-10):");
//在控制台输入
//String str="2016-9-26";
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
//将字符串转为日期,记住 abstract class DateFormat,所以要 new 子类
DateFormat dateformat=new SimpleDateFormat("yyyy-MM-dd");
//导入包的时候记住 java.util.Date;
Date date=dateformat.parse(str);
//将日期转为日历 记住 abstract class Calendar
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
/*要实现一个日历的功能
* 1.首先要知道这个月份共有多少天
* 2.知道每个月的一号在星期几,并且知道外国和中国的日历不同,比如外国的每周第一天是我们的星期日
* 我们可以把控制台拿到的日历进行转化,我们把每次拿到的日历重新设置为当月的第一天,
* 这样我们就可以知道每月一号前有几个空格符
*

* */
//获取本月最大的天数
int maxday=calendar.getActualMaximum(Calendar.DATE);
System.out.println("最大的天数 maxday:"+maxday);
//把日期设置为一号,并且找出是本周的第几天,并且测试一下
calendar.set(Calendar.DATE, 1);
int day=calendar.get(Calendar.DATE);
int weekofday1=calendar.get(Calendar.DAY_OF_WEEK);
/*int day=calendar.get(Calendar.DATE);
System.out.println(day);*/


System.out.println("日\t一\t二\t三\t四\t五\t六");
//要把一号置为所在的星期几,所以要先空格
for(int i=1;i<weekofday1;++i){
System.out.print("\t");
}

for(int i=1;i<=maxday;++i){
if(i==day){
System.out.print(i+"*"+"\t");
}else{
System.out.print(i+"\t");
}
//注意是 print 不是println

//每次到了星期六就要换行,如果拿到每周的第七天就是星期6==Calendar.DAY_OF_WEEK,就换行
//但是要注意我们设置的日期已经为一号了,所以每次循环结束前要增加日期的天数,要么始终为一号
int weekofday=calendar.get(Calendar.DAY_OF_WEEK);
if(weekofday==Calendar.SATURDAY){
System.out.println();
}
calendar.add(Calendar.DATE,1);
}

 

最新文章

  1. 安装TFS(2015)工作组模式代理服务器(Agent)
  2. console对象-转
  3. unity5.3 安卓广告插件打包出错的理解
  4. 二叉搜索树、B树
  5. java实现求数组中元素第二大的元素
  6. 转:Task任务调度实现生产者消费者模式
  7. DNS(一)简介
  8. java线程知识点
  9. java问题:类的定义,对象的定义?
  10. 通过C# 打开一个应用程序
  11. Python学习笔记——基础篇【第六周】——shutil模块
  12. 反射、Attribute
  13. 简单的纯js三级联动
  14. js try catch 的使用,容错处理
  15. 2018.4.23 pip使用
  16. Ubuntu16.04 LTS软件中心闪退及修改阿里源
  17. 挪过来的spring mvc 的入门 介绍
  18. 16 Go Concurrency Patterns: Timing out, moving on GO并发模式: 超时, 继续前进
  19. jrebel使用
  20. springboot-线程池简单使用

热门文章

  1. BestCoder20 1002.lines (hdu 5124) 解题报告
  2. 跨浏览器的事件对象-------EventUtil 中的方法及用法
  3. CODE VS1008选数
  4. 【leetcode】Binary Tree Maximum Path Sum (medium)
  5. 【python】mysqlDB转xml中的编码问题
  6. LeetCode 283 Move Zeros
  7. Keepalived虚拟ip
  8. IOS - UITableViewCell的选中时的颜色及tableViewCell的selecte与deselecte
  9. iOS-消息推送机制的实现
  10. 解决eclipse中maven web工程打包成war(发布到tomcar)时lib中没有jar包的解决方法