下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第java简单实现自定义日历本文实例为大家分享了java自定义日历的具体代码,供大家参考,具体内容如下
效果图:
源码:
packagecom.example;
importjava.text.SimpleDateFormat;
importjava.util.ArrayList;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.List;
importjava.util.Locale;
importjava.util.Scanner;
publicclassTest12{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Scannerscanner=newScanner(System.in);
System.out.println("请输入年份!查询范围是1900-2900");
intyear=scanner.nextInt();
System.out.println("请输入月份!查询范围是1-12");
intmonth=scanner.nextInt();
System.out.println("请输入日期!查询范围是1-"+getMonth(month,year));
intday=scanner.nextInt();
Calendarcalendar=Calendar.getInstance();
calendar.set(Calendar.YEAR,year);
calendar.set(Calendar.MONTH,month-1);
calendar.set(Calendar.DAY_OF_MONTH,day);
System.out.println(year+"年"+(isRunYear(year)"是闰年":"不是闰年"));
System.out.println("本月有"+getMonth(month,year)+"天");
inttotalDays=0;
for(inti=1900;iyear;i++){
totalDays+=isRunYear(i)366:365;
}
intnowDays=calendar.get(Calendar.DAY_OF_YEAR);
totalDays+=nowDays;
System.out.println(year+"-"+month+"-"+day+"距1900年1月1日已有"+totalDays+"天");
System.out.println(year+"-"+month+"-"+day+"距本年1月1日已有"+nowDays+"天");
calendar.set(Calendar.DAY_OF_MONTH,1);
System.out.println("本月的第一天为"+getFormatTime("EEEE",calendar.getTime()));
System.out.println("本月日历为:");
//这里只是简单的输出字符串,假如在AndroidStudio的类似的开发平台中自定义日历的话,可以将泛型String换
//成相应的JavaBean对象来存储数据和做标记,如标记是当月,是否被选中等。
ListStringlist=newArrayList();
//得到本月一号的星期索引
//索引从1开始,第一个为星期日,减1是为了与星期对齐,如星期一对应索引1,星期二对应索引二
intweekIndex=calendar.get(Calendar.DAY_OF_WEEK)-1;
//拿到上一个月的最后几天的天数
for(inti=0;iweekIndex;i++){
list.add("");
}
intcurrentDays=getMonth(month,year);
//拿到当月的天数
for(inti=0;icurrentDays;i++){
intdays=i+1;
if(days==day){
list.add("@"+days);
}else{
list.add(days+"");
}
}
//拿到下个月第一周的天数
//先拿到本月最后一天的星期索引
calendar.set(Calendar.DAY_OF_MONTH,currentDays);
weekIndex=calendar.get(Calendar.DAY_OF_WEEK)-1;
for(inti=0;i6-weekIndex;i++){
list.add("");
}
String[]weeks={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
for(inti=0;iweeks.length;i++){
System.out.print(getFormatString(weeks[i]));
}
System.out.println();
inti=0;
for(Strings:list){
System.out.print(getFormatString(s));
if((i+1)%7==0){
System.out.println();
}
i++;
}
System.out.println("谢谢使用!");
}
publicstaticStringgetFormatString(Strings){
//
returnString.format("%8s",s);
returns+"\t";
}
//判断是否为闰年
publicstaticbooleanisRunYear(inty){
returny%4==0y%100!=0||y%400==0;
}
publicstaticStringgetFormatTime(Stringp,Datet){
returnnewSimpleDateFormat(p,Locale.CHINESE).format(t);
}
//获取当月的天数
publicstaticintgetMonth(intm,inty){
switch(m){
case2:
returnisRunYear(y)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年爆破工程技术人员取证培训高级B设计题真题参考答案
- 墙面软包施工工艺
- 政务大厅装修改造工程施工组织设计方案
- 建筑地梁施工安全验收流程
- 车间生产计划编制及物料需求管理方案
- HSE管理体系方案
- 高温环境下施工安全注意事项通知
- 施工组织设计
- 疫情期幼儿园错峰入园、离园演练方案
- 血管内皮生长因子在大鼠肺缺血再灌注损伤中的机制与影响研究
- 2025 年秋粮“一喷多促”项目方案投标文件(技术方案)
- 【《基于PLC的水塔水位控制系统设计》10000字】
- 网络安全技术培训内容
- 食品工厂车间安全培训课件
- 民法典知识竞赛考试题库及答案(完整)
- 自流平合同协议书
- 2025年4月自考02324离散数学试题及答案
- 大学中国古代文学史-宋代
- 教育培训数字化教学资源建设方案
- 2024年甘肃省兰州市中考地理试卷(含答案解析)
- 长春网约车从业资格证(区域)考试总题库(含答案)
评论
0/150
提交评论