社区
Java
帖子详情
java 中日历怎么写?
人来人往123
2014-04-15 01:25:26
java如何让编写日历,我只会一点!可是运行不起来
...全文
174
3
打赏
收藏
java 中日历怎么写?
java如何让编写日历,我只会一点!可是运行不起来
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
-江沐风-
2014-04-15
打赏
举报
回复
用Java的Calendar类来实现吧;
1山高水长
2014-04-15
打赏
举报
回复
import java.util.Scanner; public class Menology { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int flag=1;//循环标志 int flag1=1;//用户输入年份错误标志,默认为1正确 int flag2=1;//用户输入月份错误标志,默认为1正确 int year=0; int month=0; while(flag==1) { System.out.println("---------------JAVA版简单日历的实现---------------");//原样输出 System.out.println("请输入要查询日期的年份:");//原样输出 while(flag1==1) { year=scanner.nextInt(); if(year<1900||year>9999)//年份范围 { System.out.println("您输入的年份出错,请重新输入!"); } else flag1=0; } System.out.println("请输入要查询日期的月份:");//原样输出 while(flag2==1) { month=scanner.nextInt(); if(month<1||month>12)//月份范围 { System.out.println("您输入的月份出错,请重新输入!"); } else flag2=0; } int sumDay=0;//相隔的天数 int monMaxDay=0;//当月最大的天数 int weekDay=0;//星期几 for(int i=1900;i<year;i++)//从1990年1月1日为周一开始计算 { if(i%4==0&&i%100!=0||i%400==0)//决断润年 { sumDay+=366;//润年366天 } else sumDay+=365;//平年365天 } for(int i=1;i<month;i++) { if(i==2) { if(year%4==0&&year%100!=0||year%400==0) sumDay+=29;//润年2月29天 else sumDay+=28;//平年2月28天 } else if(i==4||i==6||i==9||i==11) { sumDay+=30;//4、6、9、11月30天 } else sumDay+=31;//1、3、5、7、8、10、12月31天 } sumDay=sumDay+1; if(month==2) { if(year%4==0&&year%100!=0||year%400==0) monMaxDay=29;//润年2月最多有29天 else monMaxDay=28;//平年2月最多有28天 } else if(month==4||month==6||month==9||month==11) { monMaxDay=30;//4、6、9、11月最多有30天 } else monMaxDay=31;//1、3、5、7、8、10、12月最多有31天 weekDay=sumDay%7;//总天数模7得到周几 System.out.println(); System.out.println("--------------------"+year+"年"+month+"月"+"--------------------");//原样输车 System.out.println(); System.out.print("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\n");//用\t进行输出排版控制 for(int i=1;i<=weekDay;i++) { System.out.print("\t");//控制\t的个数 } for(int i=1;i<=monMaxDay;i++) { if(sumDay%7==6) { if(month==1&&i==1) System.out.print("元旦节"+"\n"); else if(month==2&&i==14) System.out.print("情人节"+"\n"); else if(month==3&&i==8) System.out.print("妇女节"+"\n"); else if(month==4&&i==1) System.out.print("愚人节"+"\n"); else if(month==5&&i==1) System.out.print("劳动节"+"\n"); else if(month==5&&i==4) System.out.print("青年节"+"\n"); else if(month==6&&i==1) System.out.print("儿童节"+"\n"); else if(month==7&&i==1) System.out.print("建党节"+"\n"); else if(month==8&&i==1) System.out.print("建军节"+"\n"); else if(month==9&&i==10) System.out.print("教师节"+"\n"); else if(month==10&&i==1) System.out.print("国庆节"+"\n"); else if(month==10&&i==31) System.out.print("万圣节"+"\n"); else if(month==11&&i==8) System.out.print("记者节"+"\n"); else if(month==12&&i==24) System.out.print("平安夜"+"\n"); else if(month==12&&i==25) System.out.print("圣诞节"+"\n"); else if(month==12&&i==31) System.out.print("阳历年"+"\n"); else System.out.print(i+"\n");//当是周六的时候输出日期和换行 } else { if(month==1&&i==1) System.out.print("元旦节"+"\t"); else if(month==2&&i==14) System.out.print("情人节"+"\t"); else if(month==3&&i==8) System.out.print("妇女节"+"\t"); else if(month==4&&i==1) System.out.print("愚人节"+"\t"); else if(month==5&&i==1) System.out.print("劳动节"+"\t"); else if(month==5&&i==4) System.out.print("青年节"+"\t"); else if(month==6&&i==1) System.out.print("儿童节"+"\t"); else if(month==7&&i==1) System.out.print("建党节"+"\t"); else if(month==8&&i==1) System.out.print("建军节"+"\t"); else if(month==9&&i==10) System.out.print("教师节"+"\t"); else if(month==10&&i==1) System.out.print("国庆节"+"\t"); else if(month==10&&i==31) System.out.print("万圣节"+"\t"); else if(month==11&&i==8) System.out.print("记者节"+"\t"); else if(month==12&&i==24) System.out.print("平安夜"+"\t"); else if(month==12&&i==25) System.out.print("圣诞节"+"\t"); else if(month==12&&i==31) System.out.print("阳历年"+"\t"); else System.out.print(i+"\t");//当不是周六的时候输出日期和\t } sumDay++;//天数自增 } System.out.println(); System.out.println(); System.out.println("--------------------JAVA版日历--------------------");//原样输出 System.out.println(); flag=0;//循环标志置0 System.out.println(); System.out.println("是否还要继续查询日历当输入yes:继续 其它输入为结束查询!)");//原样输出提示 String con=scanner.next(); if(con.equals("yes")) { flag=1;//当用户输入yes的时候循环标志为1 flag1=1;//当用户输入yes的时候判断年份标志为1 flag2=1;//当用户输入yes的时候判断月份标志为1 } } } } 这是我在传智播客上看到的,你试试吧!
sducaicai
2014-04-15
打赏
举报
回复
import java.text.DateFormatSymbols; import java.util.*; public class CalendarTest { public static void main(String[] args) { GregorianCalendar d = new GregorianCalendar(); //获取今天是这个月的第几天 int today = d.get(Calendar.DAY_OF_MONTH); int month = d.get(Calendar.MONTH); //月份 d.set(Calendar.DAY_OF_MONTH, 1); //设置d的日期是本月的1号 int weekDay = d.get(Calendar.DAY_OF_WEEK); //获取当天位于本星期的第几天,也就确定了星期几,值的范围是1-7 int firstDayOfWeek = d.getFirstDayOfWeek(); //获取一星期的第一天,我们得到的是Calendar.SUNDAY,因为我们一星期的第一天是周日 int indent = 0; //为了定位本月第一天,定义索引 while (weekDay != firstDayOfWeek) { indent++;//缩进个数+1 d.add(Calendar.DAY_OF_MONTH, -1);//当前天数-1,如果现在是1号,则执行本条代码后,时间变为上一个月最后一天 weekDay = d.get(Calendar.DAY_OF_WEEK); //重新获取当天位于本星期的第几天 } String[] weekDayNames = new DateFormatSymbols().getShortWeekdays();//获取简短形式的星期字符串数组 for (int i=1; i<weekDayNames.length; i++)//打印星期标题 System.out.printf("%3s\t", weekDayNames[i]); System.out.println();//换行 for (int i=1; i<=indent; i++)//确定一星期的一天位置,利用上面indent System.out.printf("\t"); //实现输出日期 d.set(Calendar.MONTH, month); d.set(Calendar.DAY_OF_MONTH, 1); do { //print day int day = d.get(Calendar.DAY_OF_MONTH); System.out.printf("%3d", day); if (day == today) System.out.print("*"); System.out.print("\t"); d.add(Calendar.DATE, 1);//天数加1 weekDay = d.get(Calendar.DAY_OF_WEEK);//刷新weekDay if (weekDay == firstDayOfWeek) //如果这天等于星期天则换行 System.out.println(); } while (d.get(Calendar.MONTH) == month); } }
Java
日历
控件,精美之极
Java
swing
日历
控件,界面精美,使用方便,能用于个人作品 首先,声明一点,这个控件是我从一套据说价值九百多美元的swing类包
中
提取出来, 并加以修改的,所以: 一, 你不能把该控件用于任何商业产品
中
。 二,...
java
源码包---
java
源码 大量 实例
Java
访问权限控制,为
Java
操作文件、
写
入文件分配合适的权限,定义
写
到文件的信息、定义文件,输出到c:/hello.txt、
写
信息到文件、关闭输出流。
Java
绘制图片火焰效果 1个目标文件 摘要:
Java
源码,图形操作,火焰...
JAVA
上百实例源码以及开源项目
Java
访问权限控制,为
Java
操作文件、
写
入文件分配合适的权限,定义
写
到文件的信息、定义文件,输出到c:/hello.txt、
写
信息到文件、关闭输出流。
Java
绘制图片火焰效果 1个目标文件 摘要:
Java
源码,图形操作,火焰...
java
源码包2
Java
访问权限控制,为
Java
操作文件、
写
入文件分配合适的权限,定义
写
到文件的信息、定义文件,输出到c:/hello.txt、
写
信息到文件、关闭输出流。
Java
绘制图片火焰效果 1个目标文件 摘要:
Java
源码,图形操作,火焰...
Java
节假日算法(免费)
Java
节假日算法(免费)
Java
50,503
社区成员
85,598
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章