怎么用java程序读出这个月第一个星期六?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用java程序读出这个月第一个星期六?相关的知识,希望对你有一定的参考价值。
参考技术A import java.util.Calendar;import java.util.Date;
public class Du
public static void main(String[] args)
System.out.println(getFirstSaturdayOfWeek(new Date()).toString());
public static Date getFirstSaturdayOfWeek(int year, int month)
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month -1);
cal.set(Calendar.DATE, 1);
while(cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY)
cal.add(Calendar.DATE, 1);
return cal.getTime();
public static Date getFirstSaturdayOfWeek(Date date)
return getFirstSaturdayOfWeek(date.getYear(), date.getMonth()+1);
-----------testing
Sat Mar 06 11:23:40 CST 112 参考技术B Calendar c = Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH, 1);
for (; c.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY; c.add(Calendar.DATE, 1))
System.out.println(c.get(Calendar.DATE));
试试吧,没问题的,很简单。上面用SunDay的原因是外国人跟咱们习惯不一样。他们周六是最后一天(记得好像是这样的)。看上面写的代码太复杂了。本回答被提问者采纳 参考技术C 是获取第一个星期六的日期么? 参考技术D 自己找吧:
java日期处理bean
Java code
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.regex.Pattern;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class DateUtil
protected static Log logger = LogFactory.getLog(DateUtil.class);
// 格式:年-月-日 小时:分钟:秒
public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss";
// 格式:年-月-日 小时:分钟
public static final String FORMAT_TWO = "yyyy-MM-dd HH:mm";
// 格式:年月日 小时分钟秒
public static final String FORMAT_THREE = "yyyyMMdd-HHmmss";
// 格式:年-月-日
public static final String LONG_DATE_FORMAT = "yyyy-MM-dd";
// 格式:月-日
public static final String SHORT_DATE_FORMAT = "MM-dd";
// 格式:小时:分钟:秒
public static final String LONG_TIME_FORMAT = "HH:mm:ss";
//格式:年-月
public static final String MONTG_DATE_FORMAT = "yyyy-MM";
// 年的加减
public static final int SUB_YEAR = Calendar.YEAR;
// 月加减
public static final int SUB_MONTH = Calendar.MONTH;
// 天的加减
public static final int SUB_DAY = Calendar.DATE;
// 小时的加减
public static final int SUB_HOUR = Calendar.HOUR;
// 分钟的加减
public static final int SUB_MINUTE = Calendar.MINUTE;
// 秒的加减
public static final int SUB_SECOND = Calendar.SECOND;
static final String dayNames[] = "星期日", "星期一", "星期二", "星期三", "星期四",
"星期五", "星期六" ;
@SuppressWarnings("unused")
private static final SimpleDateFormat timeFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
public DateUtil()
/**
* 把符合日期格式的字符串转换为日期类型
*/
public static java.util.Date stringtoDate(String dateStr, String format)
Date d = null;
SimpleDateFormat formater = new SimpleDateFormat(format);
try
formater.setLenient(false);
d = formater.parse(dateStr);
catch (Exception e)
// log.error(e);
d = null;
return d;
/**
* 把符合日期格式的字符串转换为日期类型
*/
public static java.util.Date stringtoDate(String dateStr, String format,
ParsePosition pos)
Date d = null;
SimpleDateFormat formater = new SimpleDateFormat(format);
try
formater.setLenient(false);
d = formater.parse(dateStr, pos);
catch (Exception e)
d = null;
return d;
/**
* 把日期转换为字符串
*/
public static String dateToString(java.util.Date date, String format)
String result = "";
SimpleDateFormat formater = new SimpleDateFormat(format);
try
result = formater.format(date);
catch (Exception e)
// log.error(e);
return result;
/**
* 获取当前时间的指定格式
*/
public static String getCurrDate(String format)
return dateToString(new Date(), format);
public static String dateSub(int dateKind, String dateStr, int amount)
Date date = stringtoDate(dateStr, FORMAT_ONE);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(dateKind, amount);
return dateToString(calendar.getTime(), FORMAT_ONE);
/**
* 两个日期相减
* @return 相减得到的秒数
*/
public static long timeSub(String firstTime, String secTime)
long first = stringtoDate(firstTime, FORMAT_ONE).getTime();
long second = stringtoDate(secTime, FORMAT_ONE).getTime();
return (second - first) / 1000;
/**
* 获得某月的天数
*/
public static int getDaysOfMonth(String year, String month)
int days = 0;
if (month.equals("1") || month.equals("3") || month.equals("5")
|| month.equals("7") || month.equals("8") || month.equals("10")
|| month.equals("12"))
days = 31;
else if (month.equals("4") || month.equals("6") || month.equals("9")
|| month.equals("11"))
days = 30;
else
if ((Integer.parseInt(year) % 4 == 0 && Integer.parseInt(year) % 100 != 0)
|| Integer.parseInt(year) % 400 == 0)
days = 29;
else
days = 28;
return days;
/**
* 获取某年某月的天数
*/
public static int getDaysOfMonth(int year, int month)
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, 1);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
/**
* 获得当前日期
*/
public static int getToday()
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.DATE);
/**
* 获得当前月份
*/
public static int getToMonth()
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.MONTH) + 1;
/**
* 获得当前年份
*/
public static int getToYear()
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.YEAR);
/**
* 返回日期的天
*/
public static int getDay(Date date)
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DATE);
/**
* 返回日期的年
*/
public static int getYear(Date date)
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
/**
* 返回日期的月份,1-12
*/
public static int getMonth(Date date)
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH) + 1;
/**
* 计算两个日期相差的天数,如果date2 > date1 返回正数,否则返回负数
*/
public static long dayDiff(Date date1, Date date2)
return (date2.getTime() - date1.getTime()) / 86400000;
/**
* 比较两个日期的年差
*/
public static int yearDiff(String before, String after)
Date beforeDay = stringtoDate(before, LONG_DATE_FORMAT);
Date afterDay = stringtoDate(after, LONG_DATE_FORMAT);
return getYear(afterDay) - getYear(beforeDay);
/**
* 比较指定日期与当前日期的差
*/
public static int yearDiffCurr(String after)
Date beforeDay = new Date();
Date afterDay = stringtoDate(after, LONG_DATE_FORMAT);
return getYear(beforeDay) - getYear(afterDay);
/**
* 比较指定日期与当前日期的差
*/
public static long dayDiffCurr(String before)
Date currDate = DateUtil.stringtoDate(currDay(), LONG_DATE_FORMAT);
Date beforeDate = stringtoDate(before, LONG_DATE_FORMAT);
return (currDate.getTime() - beforeDate.getTime()) / 86400000;
/**
* 获取每月的第一周
*/
public static int getFirstWeekdayOfMonth(int year, int month)
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.SATURDAY); // 星期天为第一天
c.set(year, month - 1, 1);
return c.get(Calendar.DAY_OF_WEEK);
/**
* 获取每月的最后一周
*/
public static int getLastWeekdayOfMonth(int year, int month)
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.SATURDAY); // 星期天为第一天
c.set(year, month - 1, getDaysOfMonth(year, month));
return c.get(Calendar.DAY_OF_WEEK);
/**
* 获得当前日期字符串,格式"yyyy_MM_dd_HH_mm_ss"
*
* @return
*/
public static String getCurrent()
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
StringBuffer sb = new StringBuffer();
sb.append(year).append("_").append(StringUtil.addzero(month, 2))
.append("_").append(StringUtil.addzero(day, 2)).append("_")
.append(StringUtil.addzero(hour, 2)).append("_").append(
StringUtil.addzero(minute, 2)).append("_").append(
StringUtil.addzero(second, 2));
return sb.toString();
/**
* 获得当前日期字符串,格式"yyyy-MM-dd HH:mm:ss"
*
* @return
*/
public static String getNow()
Calendar today = Calendar.getInstance();
return dateToString(today.getTime(), FORMAT_ONE);
/**
* 判断日期是否有效,包括闰年的情况
*
* @param date
* YYYY-mm-dd
* @return
*/
public static boolean isDate(String date)
StringBuffer reg = new StringBuffer(
"^((\\d2(([02468][048])|([13579][26]))-?((((0?");
reg.append("[13578])|(1[02]))-?((0?[1-9])|([1-2][0-9])|(3[01])))");
reg.append("|(((0?[469])|(11))-?((0?[1-9])|([1-2][0-9])|(30)))|");
reg.append("(0?2-?((0?[1-9])|([1-2][0-9])))))|(\\d2(([02468][12");
reg.append("35679])|([13579][01345789]))-?((((0?[13578])|(1[02]))");
reg.append("-?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))");
reg.append("-?((0?[1-9])|([1-2][0-9])|(30)))|(0?2-?((0?[");
reg.append("1-9])|(1[0-9])|(2[0-8]))))))");
Pattern p = Pattern.compile(reg.toString());
return p.matcher(date).matches();
第41月第12天 活体检测
1.
- 动作配合式活体检测:给出指定动作要求,用户需配合完成,通过实时检测用户眼睛,嘴巴,头部姿态的状态,来判断是否是活体。
- H5视频活体检测:用户上传一个现场录制的视频,录制时读出随机分配的语音校验码。然后通过分析这个视频的人脸信息以及语音校验码是否匹配,完成活体检测判断。
- 静默活体检测:相对于动态活体检测方法,静默活体检测是指,不需要用户做任何动作,自然面对摄像头3、4秒钟即可。由于真实人脸并不是绝对静止的, 存在微表情,如眼皮眼球的律动、眨眼、嘴唇及周边面颊的伸缩等,可通过此类特征反欺骗。
- 图片活体检测:基于图片中人像的破绽(摩尔纹、成像畸形等)来判断目标对象是否为活体,可有效防止屏幕二次翻拍等作弊攻击,可使用单张或多张判断逻辑。
- 近红外活体检测:利用近红外成像原理,实现夜间或无自然光条件下的活体判断。其成像特点(如屏幕无法成像,不同材质反射率不同等)可以实现高鲁棒性的活体判断。
链接:https://www.jianshu.com/p/16d30bd6344e
https://cloud.baidu.com/doc/FACE/s/vk25rd9jo
本地版活体检测:通过让用户做出指定人脸配合式的交互动作,识别当前操作者是否为活体,此功能为离线使用,可设定指定动作是否使用及应用顺序。动作包含:眨眼、张嘴、左摇头,右摇头,摇摇头、向上抬头,向下低头七个。可有效抵御高清图片、3D建模、视频等攻击。
以上是关于怎么用java程序读出这个月第一个星期六?的主要内容,如果未能解决你的问题,请参考以下文章
程序读出一个表示星期几的数字(1-7),输出对应的星期字符串名称?