用Java编写本月的日历,并表明本天
来源:互联网 发布:包包淘宝宝贝卖点范文 编辑:程序博客网 时间:2024/05/14 23:44
package 项目2;
import java.text.DateFormatSymbols;
import java.util.*;
public class CalendarTest {
public static void main(String args[])
{ //如果想看到不同地区程序的输出,应该在main方法的第一行添加下列代码
//construct d as current date
GregorianCalendar d=new GregorianCalendar();//构造一个日历对象,并用当前的日期和时间进行初始化
int today=d.get(Calendar.DAY_OF_MONTH);
int month=d.get(Calendar.MONTH);
//set d to start date of the month,将d设置为这个月的第一天,并得到这一天为星期几
d.set(Calendar.DAY_OF_MONTH,1);
int weekday=d.get(Calendar.DAY_OF_WEEK);
//get first day of week (Sunday in the U.S)
int firstDayOfWeek=d.getFirstDayOfWeek(); //firstDayOfWeek 代表的是当地一个星期的第一天是星期几,这里我们是星期日
//determine the required indentation for the first line
int indent=0; //indent是为了计数,日历首行应该缩进几位
while(weekday!=firstDayOfWeek)
{
indent++;
d.add(Calendar.DAY_OF_MONTH,-1); //将 d 设为上一天,那么对应的weekday的星期也就减一
weekday=d.get(Calendar.DAY_OF_WEEK);
}
//print weekday names //开始输出表示星期几名称的头
String[] weekdayNames=new DateFormatSymbols().getShortWeekdays();
do //因为 do 。。。 while 是先做一次循环,循环开始是weekday与firstDayOfWeek是相同的
{
System.out.printf("%4s",weekdayNames[weekday]);
d.add(Calendar.DAY_OF_MONTH,1);
weekday=d.get(Calendar.DAY_OF_WEEK);
}while(weekday!=firstDayOfWeek);
System.out.println();
for(int i=0;i<=indent;i++) //根据indent,打印首行缩进的空格
System.out.print(" ");
//开始输出日历内容
d.set(Calendar.DAY_OF_MONTH,1); //在循环中用d记录一个月中的每一天,首先先设为月份的第一天
do
{
//print day
int day=d.get(Calendar.DAY_OF_MONTH);//定义一个int变量day进行每一天的输出
System.out.printf("%3d",day);
//mark current day with'*'
if(day==today)System.out.print("*");//判断是否是今天,如果是,则用*标记
else System.out.print(" ");
//advance d to the next day
d.add(Calendar.DAY_OF_MONTH,1);//将d设为下一天
weekday=d.get(Calendar.DAY_OF_WEEK);//weekday记录这一天的星期数
//start a new line at the start of the week
if(weekday==firstDayOfWeek) //如果已经输出七天,则换行输出下一星期
System.out.println();
}while(d.get(Calendar.MONTH)==month); //一旦d进入下一月,程序结束
//the loop exits when d is day 1 of the next month
//print final end of line if necessary
if(weekday!=firstDayOfWeek)
System.out.println();
}
}
import java.text.DateFormatSymbols;
import java.util.*;
public class CalendarTest {
public static void main(String args[])
{ //如果想看到不同地区程序的输出,应该在main方法的第一行添加下列代码
//construct d as current date
GregorianCalendar d=new GregorianCalendar();//构造一个日历对象,并用当前的日期和时间进行初始化
int today=d.get(Calendar.DAY_OF_MONTH);
int month=d.get(Calendar.MONTH);
//set d to start date of the month,将d设置为这个月的第一天,并得到这一天为星期几
d.set(Calendar.DAY_OF_MONTH,1);
int weekday=d.get(Calendar.DAY_OF_WEEK);
//get first day of week (Sunday in the U.S)
int firstDayOfWeek=d.getFirstDayOfWeek(); //firstDayOfWeek 代表的是当地一个星期的第一天是星期几,这里我们是星期日
//determine the required indentation for the first line
int indent=0; //indent是为了计数,日历首行应该缩进几位
while(weekday!=firstDayOfWeek)
{
indent++;
d.add(Calendar.DAY_OF_MONTH,-1); //将 d 设为上一天,那么对应的weekday的星期也就减一
weekday=d.get(Calendar.DAY_OF_WEEK);
}
//print weekday names //开始输出表示星期几名称的头
String[] weekdayNames=new DateFormatSymbols().getShortWeekdays();
do //因为 do 。。。 while 是先做一次循环,循环开始是weekday与firstDayOfWeek是相同的
{
System.out.printf("%4s",weekdayNames[weekday]);
d.add(Calendar.DAY_OF_MONTH,1);
weekday=d.get(Calendar.DAY_OF_WEEK);
}while(weekday!=firstDayOfWeek);
System.out.println();
for(int i=0;i<=indent;i++) //根据indent,打印首行缩进的空格
System.out.print(" ");
//开始输出日历内容
d.set(Calendar.DAY_OF_MONTH,1); //在循环中用d记录一个月中的每一天,首先先设为月份的第一天
do
{
//print day
int day=d.get(Calendar.DAY_OF_MONTH);//定义一个int变量day进行每一天的输出
System.out.printf("%3d",day);
//mark current day with'*'
if(day==today)System.out.print("*");//判断是否是今天,如果是,则用*标记
else System.out.print(" ");
//advance d to the next day
d.add(Calendar.DAY_OF_MONTH,1);//将d设为下一天
weekday=d.get(Calendar.DAY_OF_WEEK);//weekday记录这一天的星期数
//start a new line at the start of the week
if(weekday==firstDayOfWeek) //如果已经输出七天,则换行输出下一星期
System.out.println();
}while(d.get(Calendar.MONTH)==month); //一旦d进入下一月,程序结束
//the loop exits when d is day 1 of the next month
//print final end of line if necessary
if(weekday!=firstDayOfWeek)
System.out.println();
}
}
0 0
- 用Java编写本月的日历,并表明本天
- java 实现本月日历
- JAVA编写的日历
- java 根据输入的时间打印本月的日历
- java程序打印输出本月日历
- java学习笔记--输出本月日历
- Java编写的记账本
- Java程序编写实现日历的打印
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。假设每度电的价格为1.2元,计算并显示本月电费。
- 题目: 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。假设每度电的价格为1.2元,计算并显示本月电费。
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。假设每度电的价格为1.2元,计算并显示本月电费。
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数, 假设每度电的价格为1.2元,计算并显示本月电费。
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。 假设每度电的价格为1.2元,计算并显示本月电费
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。 假设每度电的价格为1.2元,计算并显示本月电费
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。 假设每度电的价格为1.2元,计算并显示本月电费
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。 假设每度电的价格为1.2元,计算并显示本月电费
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。 *假设每度电的价格为1.2元,计算并显示本月电费 */
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。 假设每度电的价格为1.2元,计算并显示本月电费
- 她4分44秒的演讲,却让整个世界都沉默了
- Java关键术语
- SYSLINUX引导文件名与菜单解释
- jsp九大内置对象之pagecontext对象
- 软件工程(哈工大视频)第一话——宏观把握
- 用Java编写本月的日历,并表明本天
- Ubuntu 13.10找回Backspace键返回功能
- vb.net禁止用户改变窗体大小
- 第9周项目5-输入10个整数,找出最大值
- 程序员写代码时反复思考的问题
- jsp九大内置对象之out
- vim-ctags-taglist-netrw
- 路由器常见配置_时间_密码_IP
- oracle从服务器导出数据到本地的方法