java 一年的第一周从2月1号开始,获取今年的第三周的星期一,以及去年第三周的星期一 对应的日期

java 一年的第一周从2月1号开始,获取今年的第三周的星期一,以及去年第三周的星期一 对应的日期,第1张

public getWeekCount(Date date){ // 获取日历类实例 javautilCalendar calendar = javautilCalendargetInstance(); // 设置时间 calendarsetTime(date); // 设置周一为每周第一天 calendarsetFirstDayOfWeek(javautilCalendarMONDAY); // 返回当年最大周数 return calendargetActualMaximum(javautilCalendarWEEK_OF_YEAR);}

import javautilScanner; public class Wan{ public static void main(String[] args){ Scanner name = new Scanner(Systemin); Systemoutprint("请输入要查询的年份:"); int year = namenextInt(); Systemoutprint("请输入该年的月份"); int month = namenextInt(); } //累加 该年至输入的月份 天数 //比如 输入2009年的 3月分 // 那就累加 2009年的1月至 3月1号的总天数 public void sumDay(int year,int month){ int day = 0; int sumDay = 0; for(int i = 1;i<=month;i++){ switch(i){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: day = 31; break; case 2: if(year % 4 == 0 || year % 400 == 0 && year %100!=0){ day = 29; }else{ day = 28; } break; default: day = 30; } //最后一个月份不要累加 因为我们只是要算到该月的一号就可以了 if(i < month){ sumDay += day; } } //累加 2000年到该年的一月一号天数 for(int i = 2000;i<year;i++){ if( i % 4 == 0 || i %400== 0 && i % 100 != 0){ sumDay += 366; }else{ sumDay += 365; } } //求该月一号为星期几 int week = sumDay % 7 +1; if(week == 7){ week = 0; } } public void fomatDate(int week,int day){ int g = 0; for(int i = 0;i<week;i++){ Systemoutprint("\t"); } for(int i = 1;i<=day;i++){ Systemoutprint(i+"\t"); g = week + i; if(g % 7 == 0){ Systemoutprintln(); } } } } 给点分哈 写得好累

花了半个小时写了一个望采纳给好评。

import javautilScanner;

public class PrintCalendar {

/ Main method /

public static void main(String[] args) {

Scanner input = new Scanner(Systemin);

// Prompt the user to enter year

Systemoutprint("Enter full year (eg, 2001): ");

int year = inputnextInt();

// Prompt the user to enter month

Systemoutprint("Enter month in number between 1 and 12: ");

int month = inputnextInt();

// Print calendar for the month of the year

printMonth(year, month);

}

/ Print the calendar for a month in a year /

public static void printMonth(int year, int month) {

// Print the headings of the calendar

printMonthTitle(year, month);

// Print the body of the calendar

printMonthBody(year, month);

}

/ Print the month title, eg, May, 1999 /

public static void printMonthTitle(int year, int month) {

Systemoutprintln(" " + getMonthName(month)

+ " " + year);

Systemoutprintln("-----------------------------");

Systemoutprintln(" Sun Mon Tue Wed Thu Fri Sat");

}

/ Get the English name for the month /

public static String getMonthName(int month) {

String monthName = "";

switch (month) {

case 1: monthName = "January"; break;

case 2: monthName = "February"; break;

case 3: monthName = "March"; break;

case 4: monthName = "April"; break;

case 5: monthName = "May"; break;

case 6: monthName = "June"; break;

case 7: monthName = "July"; break;

case 8: monthName = "August"; break;

case 9: monthName = "September"; break;

case 10: monthName = "October"; break;

case 11: monthName = "November"; break;

case 12: monthName = "December";

}

return monthName;

}

/ Print month body /

public static void printMonthBody(int year, int month) {

// Get start day of the week for the first date in the month

int startDay = getStartDay(year, month);

// Get number of days in the month

int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month);

// Pad space before the first day of the month

int i = 0;

for (i = 0; i < startDay; i++)

Systemoutprint(" ");

for (i = 1; i <= numberOfDaysInMonth; i++) {

Systemoutprintf("%4d", i);

if ((i + startDay) % 7 == 0)

Systemoutprintln();

}

Systemoutprintln();

}

/ Get the start day of month/1/year /

public static int getStartDay(int year, int month) {

final int START_DAY_FOR_JAN_1_1800 = 3;

// Get total number of days from 1/1/1800 to month/1/year

int totalNumberOfDays = getTotalNumberOfDays(year, month);

// Return the start day for month/1/year

return (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % 7;

}

/ Get the total number of days since January 1, 1800 /

public static int getTotalNumberOfDays(int year, int month) {

int total = 0;

// Get the total days from 1800 to 1/1/year

for (int i = 1800; i < year; i++)

if (isLeapYear(i))

total = total + 366;

else

total = total + 365;

// Add days from Jan to the month prior to the calendar month

for (int i = 1; i < month; i++)

total = total + getNumberOfDaysInMonth(year, i);

return total;

}

/ Get the number of days in a month /

public static int getNumberOfDaysInMonth(int year, int month) {

if (month == 1 || month == 3 || month == 5 || month == 7 ||

month == 8 || month == 10 || month == 12)

return 31;

if (month == 4 || month == 6 || month == 9 || month == 11)

return 30;

if (month == 2) return isLeapYear(year) 29 : 28;

return 0; // If month is incorrect

}

/ Determine if it is a leap year /

public static boolean isLeapYear(int year) {

return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);

}

}

你的问题就是把一周的第一天设置为星期一?

那你贴这么多代码干嘛,一句话的事儿吗不是。建议你多看一下api

Calendar里面的方法就有啊, setFirstDayOfWeek

可以使用javautilCalendar来取得相关日期信息,下面给个示例供参考:

Java代码:

import javatextParseException;

import javatextSimpleDateFormat;

import javautilCalendar;

public class DateDemo {

static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

public static void main(String[] args) throws ParseException {

String date = "2011-04-25 22:28:30";

Systemoutprintln(date);

Systemoutprintln("年份:" + getYear(date));

Systemoutprintln("月份:" + getMonth(date));

Systemoutprintln("日期:" + getDay(date));

Systemoutprintln("月初日期是: " + getMinMonthDate(date));

Systemoutprintln("月末日期是: " + getMaxMonthDate(date));

}

/

获取日期年份

@param date

@return

@throws ParseException

/

public static int getYear(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

return calendarget(CalendarYEAR);

}

/

获取日期月份

@param date

@return

@throws ParseException

/

public static int getMonth(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

return (calendarget(CalendarMONTH) + 1);

}

/

获取日期号

@param date

@return

@throws ParseException

/

public static int getDay(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

return calendarget(CalendarDAY_OF_MONTH);

}

/

获取月份起始日期

@param date

@return

@throws ParseException

/

public static String getMinMonthDate(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

calendarset(CalendarDAY_OF_MONTH, calendargetActualMinimum(CalendarDAY_OF_MONTH));

return dateFormatformat(calendargetTime());

}

/

获取月份最后日期

@param date

@return

@throws ParseException

/

public static String getMaxMonthDate(String date) throws ParseException{

Calendar calendar = CalendargetInstance();

calendarsetTime(dateFormatparse(date));

calendarset(CalendarDAY_OF_MONTH, calendargetActualMaximum(CalendarDAY_OF_MONTH));

return dateFormatformat(calendargetTime());

}

}

以上就是关于java 一年的第一周从2月1号开始,获取今年的第三周的星期一,以及去年第三周的星期一 对应的日期 全部的内容,包括:java 一年的第一周从2月1号开始,获取今年的第三周的星期一,以及去年第三周的星期一 对应的日期 、用JAVA做日历,要求源代码、Java日历查询程序(万年历)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9587232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存