package com.etc.util;

import java.util.Calendar;
import java.util.Scanner; public class Calendar2 { public static void main(String[] args) {
// 创建扫描器
Scanner sc = new Scanner(System.in);
// 输入年份
System.out.println("请输入指定年份:");
int year = sc.nextInt();
// 输入月份
System.out.println("请输入指定月份:");
int month = sc.nextInt();
// 输入天数
System.out.println("请输入指定天数:");
int day = sc.nextInt(); // 在控制台输出周期数
System.out.println("日\t一\t二\t三\t四\t五\t六"); // 创建日历Calendar变量对象
Calendar cal = Calendar.getInstance();
// 给Calendar对象设置年月日
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
// cal.set(Calendar.DATE,day); // 将天数设置为第一天
cal.set(Calendar.DATE, 1); // 指定月的第一天是星期几
int i = cal.get(Calendar.DAY_OF_WEEK); int weekday = 0;// 指定月的第一天前面有多少个空格
switch (i) {
case 1:
weekday = 0;
break;
case 2:
weekday = 1;
break;
case 3:
weekday = 2;
break;
case 4:
weekday = 3;
break;
case 5:
weekday = 4;
break;
case 6:
weekday = 5;
break;
case 7:
weekday = 6;
break;
} // 打印输出指定月第一天的前面几个空格
for (int j = 0; j < weekday; j++) {
System.out.print("\t");
} int days = 1;
// 从指定月的第一天开始打印输出
for (int j = 0; j < 7 - weekday; j++) {
System.out.print(days + "\t");
days++;
} int actualMaximumDate = cal.getActualMaximum(Calendar.DATE);//获取本月的实际最大天数
cal.set(Calendar.DATE,actualMaximumDate);//设置本月的天数是当前月的实际最大天数
int week_month=cal.get(Calendar.WEEK_OF_MONTH);//返回的是当前天数是本月第几周 for(int j=0;j<week_month;j++){//指定月有多少周,就打印多少行
System.out.println();//每输出打印7天就换一行
for(int k=0;k<7;k++){//依次将周日到周六的对应的天数打印出来
if(days>actualMaximumDate){//若自动增加的天数大于实际天数,循环终止
return;
}
if(days==day){//若指定的天数与当前自动增加的天数一样,标识出来打印
System.out.print("*"+days+"\t");
}else{//若指定的天数与当前自动增加的天数不一样,正常打印
System.out.print(days+"\t");
}
days++;
}
} }
}

  

最新文章

  1. Centos7安装PHP7
  2. angular-ui分页组件
  3. OC点语法和变量作用域
  4. Use Excel Pivot Table as a BI tool
  5. 【转】java.util.ResourceBundle使用详解
  6. 2015年11月30日 spring初级知识讲解(一)装配Bean
  7. SharedPreferences第一次使用后HashMap将常驻内存
  8. cocos2dx 3.x(TexturePacker进行图片加密)
  9. Erlang 从入门到精通(一) 下载安装
  10. Computer architecture Computer organization
  11. ubuntu下搭建nagios
  12. python用装饰器实现缓存函数执行结果
  13. C++实现红黑树,仿STL封装
  14. Linux企业级开发技术(7)——libevent企业级开发之锁和线程
  15. oracle 备份操作流程
  16. 【django之form表单】
  17. 4.JAVA-数组、String详解
  18. Debian Security Advisory DSA-4419-1 twig security update
  19. C# - 设计模式 - 钩子模式
  20. Silverlight/WPF 系列汇总

热门文章

  1. c# winform中使用WebKit实现网页与winform的交互
  2. cvpr2016论文
  3. 通过JS唤醒app(安卓+ios)
  4. Coefficient Computation (大整数、Java解决)
  5. jdk8--十大新特性
  6. MySQL之SQL优化详解(一)
  7. js实现滚动条下拉到一定程度固定结算栏
  8. SVG格式图片转成HTML中SVG的Path路径
  9. 【Codeforces 1106E】Lunar New Year and Red Envelopes
  10. bupt summer training for 16 #4 ——数论