用java 输出合理的日期,从一月到12月。4,6,9,11月有30天,2月 28天,其他都是31天 5
4个回答
展开全部
import java.util.Calendar;
class CalendarText {
int allday;
Calendar cal;
public void init(int m, int n) {
int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
cal = Calendar.getInstance();
cal.set(Calendar.YEAR, m);
cal.set(Calendar.MONTH, n - 1);
cal.set(Calendar.DATE, 1);
if ((m % 4 == 0 && m % 100 != 0 || m % 400 == 0) && n == 2)
days[1]++;
allday = days[n - 1];
}
public void print(int x, int y) {
System.out.println("------------" + x + "年" + y + "月份------------\n");
System.out.println("SUN\tMON\tTUR\tWED\tTHU\tFRI\tSAT");
int first = cal.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i < first; i++)
System.out.print("\t");
for (int i = 1; i <= allday; i++) {
System.out.print(i + "\t");
if (first++ % 7 == 0)
System.out.println();
}
}
public static void main(String[] args) throws Exception {
int year = 2008;
int month = 10;
CalendarText myjava = new CalendarText();
myjava.init(year,month);
myjava.print(year, month);
}
}
class CalendarText {
int allday;
Calendar cal;
public void init(int m, int n) {
int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
cal = Calendar.getInstance();
cal.set(Calendar.YEAR, m);
cal.set(Calendar.MONTH, n - 1);
cal.set(Calendar.DATE, 1);
if ((m % 4 == 0 && m % 100 != 0 || m % 400 == 0) && n == 2)
days[1]++;
allday = days[n - 1];
}
public void print(int x, int y) {
System.out.println("------------" + x + "年" + y + "月份------------\n");
System.out.println("SUN\tMON\tTUR\tWED\tTHU\tFRI\tSAT");
int first = cal.get(Calendar.DAY_OF_WEEK);
for (int i = 1; i < first; i++)
System.out.print("\t");
for (int i = 1; i <= allday; i++) {
System.out.print(i + "\t");
if (first++ % 7 == 0)
System.out.println();
}
}
public static void main(String[] args) throws Exception {
int year = 2008;
int month = 10;
CalendarText myjava = new CalendarText();
myjava.init(year,month);
myjava.print(year, month);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
package test;
import java.text.SimpleDateFormat;
import java.util.Date;
public class AllYearString
{
public static void main(String[] args)
{
AllYearString ays = new AllYearString();
String[] str = ays.getDays();
if (null != str)
{
for (int i = 0;i < str.length;i ++)
{
System.out.println(str[i]);
}
}
}
/**
*
* @return String[]一年中所有日子的字符串数组。
*/
private String[] getDays()
{
Date[] date = getFirstAndLastDays();
long l2 = date[1].getTime();
String str = "";
for (long l1 = date[0].getTime();l1 <= l2;l1 += 1000*3600*24)
{
str += formatDate(new Date(l1)) + "#";
}
return str.split("#");
}
/**
* 获得当年的第一天。
* @return Date数组。第一位是当年的第一天和第二位是当年的最后一天。
*/
private Date[] getFirstAndLastDays()
{
Date date = new Date();
String dateStr = formatDate(date);
String year = dateStr.substring(0,4);
//当年第一天的字符串形式。
String firstDayStr = dateStr.replaceFirst(year + "-\\d{2}-\\d{2}",year + "-01-01");
//当年最后一天的字符串形式。
String lastDayStr = dateStr.replaceFirst(year + "-\\d{2}-\\d{2}",year + "-12-31");
Date firstDay = formatString(firstDayStr);
Date lastDay = formatString(lastDayStr);
return new Date[]{firstDay,lastDay};
}
/**
* 将时间转为字符串。
* @return String。传入时间的格式化字符串。
* @param Date date。需要格式化的时间。
*/
private String formatDate(Date date)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
/**
* 将字符串转化为JAVA时间类型。
* @return Date date。JAVA时间类型。
* @param String。字符串。
*/
private Date formatString(String dateStr)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try
{
return sdf.parse(dateStr);
}
catch (Exception e)
{
return null;
}
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
public class AllYearString
{
public static void main(String[] args)
{
AllYearString ays = new AllYearString();
String[] str = ays.getDays();
if (null != str)
{
for (int i = 0;i < str.length;i ++)
{
System.out.println(str[i]);
}
}
}
/**
*
* @return String[]一年中所有日子的字符串数组。
*/
private String[] getDays()
{
Date[] date = getFirstAndLastDays();
long l2 = date[1].getTime();
String str = "";
for (long l1 = date[0].getTime();l1 <= l2;l1 += 1000*3600*24)
{
str += formatDate(new Date(l1)) + "#";
}
return str.split("#");
}
/**
* 获得当年的第一天。
* @return Date数组。第一位是当年的第一天和第二位是当年的最后一天。
*/
private Date[] getFirstAndLastDays()
{
Date date = new Date();
String dateStr = formatDate(date);
String year = dateStr.substring(0,4);
//当年第一天的字符串形式。
String firstDayStr = dateStr.replaceFirst(year + "-\\d{2}-\\d{2}",year + "-01-01");
//当年最后一天的字符串形式。
String lastDayStr = dateStr.replaceFirst(year + "-\\d{2}-\\d{2}",year + "-12-31");
Date firstDay = formatString(firstDayStr);
Date lastDay = formatString(lastDayStr);
return new Date[]{firstDay,lastDay};
}
/**
* 将时间转为字符串。
* @return String。传入时间的格式化字符串。
* @param Date date。需要格式化的时间。
*/
private String formatDate(Date date)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
/**
* 将字符串转化为JAVA时间类型。
* @return Date date。JAVA时间类型。
* @param String。字符串。
*/
private Date formatString(String dateStr)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try
{
return sdf.parse(dateStr);
}
catch (Exception e)
{
return null;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你能把需求说清楚点吗?是用户输入一个月份,然后程序输出对应的天数吗?要是这样用一个简单的switch,case就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询