永发信息网

关于String.format()和日期类的一些问题~~~·~

答案:1  悬赏:70  手机版
解决时间 2021-03-24 10:09
//月历
import java.util.*;
//import java.util.Date;
//import java.util.Calendar;
import java.text.*;
//import java.text.SimpleDateFormat;
//import java.text.Format;
public class MonthlyCalendar {


public String toString()//返回当月的月历
{
Calendar now=Calendar.getInstance();//返回表示当前日期的实例
int year=now.get(Calendar.YEAR);
int month=now.get(Calendar.MONTH)+1;//月份从0开始
now.set(year, month-1, 1);//设置为当月1日
int week=now.get(Calendar.DAY_OF_WEEK)-1;//当前1日是星期几
String str=year+"年"+month+"月的月历\n 日 一 二 三 四 五 六\n";
str+=String.format("%"+4*week+"c"," ");
int days=MyDate.daysOfMonth(year, month);//计算出当月的天数
for(int i=1;i<=days;++i)
{
str+=String.format("%4d", i);
if((week+i)%7==0)
str+="\n";
}
return str;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日EEEE a hh时" +
"mm分ss秒");
System.out.println(sdf.format(new Date()));
System.out.println(new MonthlyCalendar().toString());
}

}

以上一堆废话,现在程序报错如下:
Exception in thread "main" java.util.IllegalFormatConversionException: c != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printCharacter(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at MonthlyCalendar.toString(MonthlyCalendar.java:21)
at MonthlyCalendar.main(MonthlyCalendar.java:36)
2011年12月04日星期日 上午 10时31分11秒

求原因啊求原因~~

PS:欢迎各界群众前来拍砖!
最佳答案
建议应该先去查一下String.format()的API文档,
str+=String.format("%"+4*week+"c"," ");
LZ想法应该是在1号前面补一定数量的半角空格,上面语句是想添加一定长度的半角空格,第2个参数应该是半角空格的unicode,上网查后发现空格的unicode为0020,所以应该改为:
str+=String.format("%"+4*week+"c",0x0020);
这样就可以实现。
MyDate类中计算某月天数的方法:
int days=MyDate.daysOfMonth(year, month);//计算出当月的天数
可以使用int days=now.getActualMaximum(now.DATE);
LZ可以试试看 ^_^
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
ssd512缓存和256差别大吗
有哪位知道职工体育的概念是什么? 谢谢
6月20日检查没有怀孕,7月6日检查怀孕了,如
求茉莉MM表情包~谢谢 yywill@hotmail.com
读下面南极地区资料,分析回答问题.南极洲98
为什么人类祖先没有选择吃虫子,而是选择难
西游记讲的是77四十九难的吗?
卖二手手机可靠的网站
兄弟面店这个地址在什么地方,我要处理点事
会计专业是学历重要还是工作经验重要
linux系统在哪下载,急
单选题Doyouthinkskiinginwinteris_______
稀宝行在什么地方啊,我要过去处理事情
非常难的英雄守城奥义马里恩怎么二转
3公螃蟹型号大小是多少两至多少两?
推荐资讯
民航的直飞和执飞是一个意思么
不同树叶是完全不同的。是对还是错呢?
中国有,船舶垃圾管理方面的政策么
牛肉板面的辣椒怎么炸成黑色,而且不糊。。。
有关颛顼的故事
形容毕业迷茫的句子,生活迷茫像往句子说说心
谁知道爽妹子这个白色耳机是什么牌子的?想买
抠像除了需要绿布还需要什么打光设备?有抠像
初二英语应该注意些什么?怎么学?上课要准备
8月中旬去美国旅游应该注意什么?
《该不该对抗自由基》的阅读答案
如图是某品牌服装标签,(1)指出面料中的合
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?