这个考勤怎么在日历怎么记考勤上设置的?

日历可能是人类最古老的工具之一了。从古老原始的结绳刻木,到历史悠久的台历挂历,再到信息时代形形色色的日历软件。日历可以帮助我们更合理高效的安排时间,但是使用日历也需要一定的时间成本和坚持不懈的毅力。 在节奏紧张的现代生活,我们需要一款轻快、便捷、连接你我的日历。最近上线的“朝夕日历”就是这么一款产品,朝夕日历基于微信公众号,无需下载,使用方便。开发团队“朝夕光年”,取义时间与空间的结合,文艺和技术的交融。 小编作为第一批种子用户应邀参加了产品内测。下面立刻介绍一下这款产品。
语音创建日程——日历也能听懂你 朝夕日历支持使用语音创建日程,如同微信语音聊天一样简单,符合用户习惯。例如,打开公众号,语音输入“下周四早上十点开项目会”。后台会对语音进行智能分析,提取出“下周四早上十点”这个时间信息,然后创建一个时间为下周四早上十点,主题为“开项目会”的日程,并默认设置提前一个小时提醒(也可以修改提醒时间)。当然,如果你习惯使用文字输入,也可以直接输入文字。如图所示:
日程编辑与管理——不逊于原生应用的体验 语音或文字添加能满足大部分情况下的需求。但如果你需要进行更详细的编辑,如修改日程主题、地点、提前提醒时间、日程描述等,那么可进入详情编辑页面。你也可以查看所有的日程列表,默认显示今天及以后的事项,上下滑动可以查看更多。如图所示:
一键分享给好友——分享日程就像分享图片一样简单 朝夕日历充分利用微信的社交优势。你可以非常方便地将日程分享给好友。有两种分享方式,可以在对话页面回复“YQ”或“邀请”,后台会返回一个带二维码的邀请卡,将邀请卡转发给好友,好友扫描二维码即可加入日程。你也可以进入日程详情页面直接分享链接。如下图所示:
日程留言与讨论——每一个日程都是一个主题讨论 日程详情里还支持留言讨论,活动发起人可以在这里发布活动的注意事项、最新进展等等,所有参与人都可以着这里交流讨论,非常适合开会、出游等集体活动。如图所示:
日程动态及时提醒——贴身秘书般的服务 每当日程有新动态产生,例如有人发表了留言,朝夕日历会给所有参与人发送提醒,确保用户能了解日程的最新变化。日程开始前,朝夕日历也会给所有参与人推送提醒。由于微信的高频打开率、显著的位置,日程动态通过微信发送,能最大程度地保证不遗忘、不错过。
体验了朝夕日历后,小编认为这款产品确实足够轻、足够简单,语音智能添加和日程分享是两个亮点。但是目前产品还略显单薄,缺少日程分类、完成任务之类的功能,不太符合理论。不过开发团队很有诚意,非常重视用户反馈,据说ios版的App即将上线,功能要比微信公众号强大很多。大家在微信里搜索并关注“朝夕日历”公众号就可以体验这款有趣的日历,或者扫描文中邀请卡中的二维码也能更直观地体验朝夕日历的社交功能。
正在载入...
系列文章推荐
年度最受欢迎文章
如果你觉得我们的文章对你产生了积极的影响,欢迎
你的经验和通过支付宝来【图片】第一次打卡【朝夕日历吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:7贴子:
第一次打卡
希望我能坚持下去
「天猫七夕节」全球来电,大牌参与,大家电满,手机满,还享买贵必赔!「天猫七夕节」全球来电,因爱&惠&七夕,尽享大牌好货!
今天四点半起床,五十开始跑马,忘记打卡了
你好,请问是在哪里打卡?在app上找了好久?
这怎么打卡啊
贴吧热议榜
使用签名档&&
保存至快速回贴如何在excel表中插入日历表,我要制造考勤表 只要选择对应月份,日期就自动生成了_百度知道
如何在excel表中插入日历表,我要制造考勤表 只要选择对应月份,日期就自动生成了
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
gouweicao78
来自电脑网络类芝麻团
gouweicao78
采纳数:974
获赞数:3729
参与团队:
这个很简单,百度hi给你留言示例的下载地址了。 假设年份在D1,月份在F1在日期栏1日对应的单元格输入=DATE($D1,$F1,COLUMN(A:A))向右复制并设置单元格格式为d,显示1、2、3……28,到第29列时,假设28号所在单元格为AA4单元格,则AB4输入:=IF(MONTH($AA4+COLUMN(A:A))=$F1,$AA4+COLUMN(A:A),&&)向右复制到31格。第3行输入=第4行的单元格,并设置单元格格式为aaa,显示为星期几。条件格式=MOD(AA4,7)=0
你好 我是一菜鸟 倒数第二步之前都完成了 就剩最后一步 条件格式了 另外,第3行输入=第4行的单元格,并设置单元格格式为aaa,我弄的显示为星期六
可最后的条件格式怎么弄???呵呵 ,多谢了!
条件格式如果要显示周末为红色,则用=MOD(AA4,7)&2仅周六则=MOD(AA4,7)=0仅周日则=MOD(AA4,7)=1已百度hi留言给你示例链接,可以参考。或到Excel技巧网发帖求助。
为你推荐:
其他类似问题
您可能关注的内容
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。我的打卡日历
SunMonTueWedThuFriSat
78910111213
14151617181920
21222324252627
282930 1 2 3 4
30,28,27,26,25,24,23,22,21,20,19,18,17,16,15,13,12,11,10,9,8,7,6,5,4,3,2,1
扇贝打卡日历 - 我6月份打卡28天, 累计打卡444天
wxfafd401ae2cda562
QdfW0SxEZ8ZEd1km
2cc75aafcab2daad1e63在APP中实现日历的操作对于很多人来说或许都不太容易,因为根据要求的不同,日历的样式和显示的功能也不太一样,特别是对于一些初写代码,不太熟练写自定义接口的朋友,比如说我。
我们也会在网上经常看到一些日历的Demo,但有时候也不太符合我们的要求,最近正好在APP中有一个考勤统计的日历操作,也是在同事的帮助下完成的,我给记录一下,希望对你也有帮助。好了!我们先看一下效果图,然后再谈具体的操作。
我们对功能进行简单介绍一下:这是一根据日历展示的外勤统计的页面,由头标题,年月检索栏,日历,当前日期,检索出来的统计列表组成。然后我们对这些进行一一的了解。
首先是头标题,这个就不用介绍了吧 ,简直是 so easy ! 我们直接看代码
titlebar_blue.xml
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"&
&RelativeLayout
android:layout_width="match_parent"
android:layout_height="49dp"
android:layout_gravity="center"
android:background="#006ad8"&
&ImageView
android:id="@+id/iv_back"
android:layout_width="45dp"
android:layout_height="48dp"
android:layout_marginLeft="5dp"
android:padding="15dp"
android:scaleType="centerInside"
android:visibility="gone"
android:src="@drawable/back" /&
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text=""
android:textColor="@color/colorWhite"
android:textSize="17sp" /&
&/RelativeLayout&
&/LinearLayout&
接下来我们看一下年月检索栏,这个功能的实现也是使用了第三方 TimePickerView 实现的 ,但是并没有直接的去依赖,而是将生成一个 aar包 然后再进行依赖,这样可以减小apk的大小,我们看一下图片,以及依赖。
这里我们对时间选择器 TimePickerView 不进行多介绍,如果有兴趣的话你可以学习一下,我们只展示下部分功能,具体解释已经在代码中展现:
tv_title_date.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//年月检索
type具有多种类型,可以展示年月日,年月,年月日时分秒等。你可以搜索一下
timePickerView = new TimePickerView(context, TimePickerView.Type.YEAR_MONTH);//年月
//控制时间范围
Calendar calendar = Calendar.getInstance();
//20 代表检索时下上可以滑动上20年,下20年 滑动的范围
timePickerView.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR) + 20);//要在setTime 之前才有效果哦
timePickerView.setCyclic(true);
//展示当前的年月
timePickerView.setTime(initDate);
//点击阴暗部分,是否可以取消
timePickerView.setCancelable(false);
//在时间选择器上进行选择,日历展示相对的月份
timePickerView.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() {
public void onTimeSelect(Date date) {
initDate =
//获取选择的年月赋值给年月检索栏
tv_title_date.setText( DateUtils.getTimeYM(date));
Calendar c = Calendar.getInstance();
c.setTime(date);
if (DateUtils.getTimeYM(date).equals(DateUtils.currentYM())) {//得到日期字符串//获取当前年月字符串
//这是当年当月
选中当天(日期)
setYearMonthDay(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, DateUtils.getToday_DAY());
//非当年当月 不选中任何天
setYearMonthDay(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, -1);
timePickerView.show();
然后我们就看一下自定义的日历,先看下展示日历的view_yearmonthdatechoose.xml
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical"&
&!--年月检索栏--&
android:id="@+id/tv_title_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:drawableLeft="@drawable/date_blue"
android:drawablePadding="8dp"
android:gravity="center_vertical"
android:text=""
android:textColor="@color/titlebar_bg_blue"
android:textSize="12sp" /&
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:layout_marginTop="10dp"
android:background="@color/tv_f3" /&
&LinearLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:orientation="horizontal"&
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="日"
android:textColor="@color/tv_22"
android:textSize="13sp" /&
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="一"
android:textColor="@color/tv_22"
android:textSize="13sp" /&
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="二"
android:textColor="@color/tv_22"
android:textSize="13sp" /&
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="三"
android:textColor="@color/tv_22"
android:textSize="13sp" /&
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="四"
android:textColor="@color/tv_22"
android:textSize="13sp" /&
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="五"
android:textColor="@color/tv_22"
android:textSize="13sp" /&
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="六"
android:textColor="@color/tv_22"
android:textSize="13sp" /&
&/LinearLayout&
android:layout_width="match_parent"
android:layout_height="0.1dp"
android:background="@color/tv_f3" /&
&!--日历列表AutoFitGridView 是不可滑动的GridView--&
&calendarview.itcast.zz.calendarview.AutoFitGridView
android:id="@+id/gv_month"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:numColumns="7"
android:verticalSpacing="8dp"&
&/calendarview.itcast.zz.calendarview.AutoFitGridView&
&/LinearLayout&
然后我们看一下代码的实现:YearMonthDateChooseView
* 外勤统计的日历选择器
public class YearMonthDateChooseView extends LinearLayout {
private TextView tv_title_//标题年月份
private GridView gv_//月份的布局
private YearMonthDateAdapter yearMonthDateA
private int mY//几几年
private int mM//几几月
private int mD//几几号
private LinearLayout contentV
private TimePickerView timePickerV
private Date initD
public YearMonthDateChooseView(Context context) {
this(context,null);
public YearMonthDateChooseView(Context context, AttributeSet attrs) {
this(context, attrs,-1);
public YearMonthDateChooseView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setOrientation(VERTICAL);
this.context =
// 获取对象
Calendar nowCalendar = Calendar.getInstance();
mYear = nowCalendar.get(Calendar.YEAR);
mMonth = nowCalendar.get(Calendar.MONTH)+1;//0 - 11 所以加上1
mDay = nowCalendar.get(Calendar.DAY_OF_MONTH);
initDate = new Date();
initView();
initData();
private void initView(){
contentView = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.view_yearmonthdatechoose,null);
tv_title_date = (TextView) contentView.findViewById(R.id.tv_title_date);
gv_month = (GridView) contentView.findViewById(R.id.gv_month);
private void initData() {
gv_month.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
tv_title_date.setText(mYear + "-" + mMonth);
if (context instanceof Activity){//context是否是Activity 的实例
yearMonthDateAdapter = new YearMonthDateAdapter((Activity) context,mYear,mMonth,mDay);
yearMonthDateAdapter = new YearMonthDateAdapter(context,mYear,mMonth,mDay);
yearMonthDateAdapter.setOnMyItemClickListener(new YearMonthDateAdapter.OnMyItemClickListener() {
public void onMyItemClick(int postion, int mDay) {
tv_title_date.setText(mYear + "-" + mMonth);
//根据列明获取周
String weekName = DateUtils.getWeekName(mYear,mMonth,mDay);
if (onDateClickListener != null) {
onDateClickListener.onDateCLick(mYear, mMonth, mDay,weekName);
Log.d("error:--", "onMyItemClick() returned: " + "onDateClickListener为null");
gv_month.setAdapter(yearMonthDateAdapter);
contentView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
this.removeAllViews();
this.addView(contentView);
tv_title_date.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//年月检索
type具有多种类型,可以展示年月日,年月,年月日时分秒等。你可以搜索一下
timePickerView = new TimePickerView(context, TimePickerView.Type.YEAR_MONTH);//年月
//控制时间范围
Calendar calendar = Calendar.getInstance();
//20 代表检索时下上可以滑动上20年,下20年 滑动的范围
timePickerView.setRange(calendar.get(Calendar.YEAR) - 20, calendar.get(Calendar.YEAR) + 20);//要在setTime 之前才有效果哦
timePickerView.setCyclic(true);
//展示当前的年月
timePickerView.setTime(initDate);
//点击阴暗部分,是否可以取消
timePickerView.setCancelable(false);
//在时间选择器上进行选择,日历展示相对的月份
timePickerView.setOnTimeSelectListener(new TimePickerView.OnTimeSelectListener() {
public void onTimeSelect(Date date) {
initDate =
//获取选择的年月赋值给年月检索栏
tv_title_date.setText( DateUtils.getTimeYM(date));
Calendar c = Calendar.getInstance();
c.setTime(date);
if (DateUtils.getTimeYM(date).equals(DateUtils.currentYM())) {//得到日期字符串//获取当前年月字符串
//这是当年当月
选中当天(日期)
setYearMonthDay(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, DateUtils.getToday_DAY());
//非当年当月 不选中任何天
setYearMonthDay(c.get(Calendar.YEAR), c.get(Calendar.MONTH) + 1, -1);
timePickerView.show();
* 设置年月日
* @param year
* @param month
* @param day
public void setYearMonthDay(int year,int month ,int day){
initData();
* 获取默认年
public int getmYear() {
* 获取默认月份
public int getmMonth() {
* 获取默认日期
public int getmDay() {
//自定义日期点击监听(用于外勤统计)点击日期查询签到列表
public interface OnDateClickListener{
void onDateCLick(int year, int month, int day, String week);
private OnDateClickListener onDateClickL
public void setOnDateClickListener(OnDateClickListener onDateClickListener) {
this.onDateClickListener = onDateClickL
YearMonthDataAdapter日历展示
布局文件Item_calendar_year_month.xml:
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"&
&RelativeLayout
android:id="@+id/rl_item"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@color/white"&
android:id="@+id/tv_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:button="@null"
android:clickable="false"
android:focusable="false"
android:gravity="center"
android:text=""
android:textSize="13sp" /&
&!--android:textColor="@color/sl_col_black_blue"--&
&!--android:background="@drawable/sl_clendar_month"--&
&/RelativeLayout&
&/LinearLayout&
代码展示:
* 自定义日期的 月份适配
public class YearMonthDateAdapter extends BaseAdapter {
private int mY//几几年
private int mM//几几月
private int mD//几几号
//该月有多少天
private int firstDayOfW//该月第一天是星期几
private List&String&
public YearMonthDateAdapter(Context context, int mYear, int mMonth, int mDay) {
this.activity = (Activity)
this.mYear = mY
this.mMonth = mM
this.mDay = mD
// 设置月份的数据表
setDatas(mYear, mMonth, mDay);
public YearMonthDateAdapter(Activity activity, int mYear, int mMonth, int mDay) {
this.activity =
this.mYear = mY
this.mMonth = mM
this.mDay = mD
// 设置月份的数据表
setDatas(mYear, mMonth, mDay);
public int getCount() {
return firstDayOfWeek +
public Object getItem(int position) {
return datas.get(position);
public long getItemId(int position) {
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(activity).inflate(R.layout.item_calendar_year_month, null);
vh = new Holder();
vh.tv_day = (TextView) convertView.findViewById(R.id.tv_day);
vh.rl_item = (RelativeLayout) convertView.findViewById(R.id.rl_item);
convertView.setTag(vh);
vh = (Holder) convertView.getTag();
// 月份第一天前的那几个item不能点击
if (mDay != -1 && position == firstDayOfWeek + mDay - 1) {//position 0——...
vh.tv_day.setBackgroundResource(R.drawable.circle_day);
vh.tv_day.setTextColor(activity.getResources().getColor(R.color.titlebar_bg_blue));
vh.tv_day.setBackgroundColor(activity.getResources().getColor(R.color.white));
vh.tv_day.setTextColor(activity.getResources().getColor(R.color.tv_22));
vh.tv_day.setText(datas.get(position));
vh.rl_item.setOnClickListener(new View.OnClickListener() {//当月一号前的几天不能点击
public void onClick(View v) {
if (position &= firstDayOfWeek) {
mDay = Integer.parseInt(datas.get(position));
if (onMyItemClickListener != null) {//可以点
onMyItemClickListener.onMyItemClick(position, mDay);
Log.d("error:", "onClick() returned: " + "onMyItemClickListener为null");
notifyDataSetChanged();
return convertV
private class Holder {
RelativeLayout rl_
TextView tv_
* 设置月份的数据表
* @param year
* @param month
* @param day
public void setDatas(int year, int month, int day) {
//通过年份和月份 得到当月的日子个数(一个月多少天)
days = DateUtils.getMonthDays(year, month);
//getFirstDayWeek 返回当前月份几号位于周几
firstDayOfWeek = DateUtils.getFirstDayWeek(year, month, 1);//第一天是周几
datas = new ArrayList&&();
//先添加空白天数
firstDayOfweek是几 就添加几天
for (int i = 0; i & firstDayOfW i++) {
datas.add(" ");
for (int i = 1; i &= i++) {
datas.add("" + i);
* 得到选中的天的day
* @return 23
public int getMday() {
* 得到选中的月份
public int getmMonth() {
* 得到选中的年份
public int getmYear() {
//自定义日期点击监听(Gridview)中
public interface OnMyItemClickListener {
void onMyItemClick(int position, int mDay);
private OnMyItemClickListener onMyItemClickL
public void setOnMyItemClickListener(OnMyItemClickListener onMyItemClickListener) {
this.onMyItemClickListener = onMyItemClickL
不可滑动的GridView:
* 不滚动的gridView,自适应高度
* @author Administrator
public class AutoFitGridView extends GridView {
public AutoFitGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
public AutoFitGridView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
public AutoFitGridView(Context context) {
super(context);
// TODO Auto-generated constructor stub
* 设置不滚动
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE&&2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
接下来我们来看看MainActivity的展示:
&?xml version="1.0" encoding="utf-8"?&
&LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/tv_f3"
android:orientation="vertical"
tools:context="calendarview.itcast.zz.calendarview.MainActivity"&
&include layout="@layout/titlebar_blue" /&
//自定义的日历
&calendarview.itcast.zz.calendarview.YearMonthDateChooseView
android:id="@+id/calendar_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"&
&/calendarview.itcast.zz.calendarview.YearMonthDateChooseView&
//当前日期
android:id="@+id/tv_date"
android:layout_width="match_parent"
android:layout_height="35dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:text=""
android:textColor="@color/tv_33"
android:textSize="14sp" /&
//查询到的统计列表展示
&android.support.v7.widget.RecyclerView
android:id="@+id/recycleview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/tv_f3"&
&/android.support.v7.widget.RecyclerView&
&/LinearLayout&
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private ImageView iv_
private TextView tv_
private YearMonthDateChooseView calendar_
private TextView tv_
private RecyclerV
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
initListener();
private void initView() {
iv_back = (ImageView) findViewById(R.id.iv_back);
tv_title = (TextView) findViewById(R.id.tv_title);
calendar_view = (YearMonthDateChooseView) findViewById(R.id.calendar_view);
tv_date = (TextView) findViewById(R.id.tv_date);
recycleview = (RecyclerView) findViewById(R.id.recycleview);
recycleview.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
private void initData() {
iv_back.setVisibility(View.VISIBLE);
tv_title.setText("外勤统计");
tv_date.setText(calendar_view.getmYear() + "/" + calendar_view.getmMonth() + "/" +
calendar_view.getmDay() + " " + DateUtils.getWeekName(calendar_view.getmYear(), calendar_view.getmMonth(), calendar_view.getmDay()));
date = calendar_view.getmYear() + "-" + calendar_view.getmMonth() + "-" + calendar_view.getmDay();
// 获取外勤统计
getStatistic(date);
private void initListener() {
iv_back.setOnClickListener(this);
//自定义日期点击监听
calendar_view.setOnDateClickListener(new YearMonthDateChooseView.OnDateClickListener() {
public void onDateCLick(int year, int month, int day, String week) {
tv_date.setText(year+"/"+month+"/"+day+" "+week);
date = year + "-" + month + "-" +
getStatistic(date);
// 获取外勤统计
private void getStatistic(String date) {
public void onClick(View view) {
switch (view.getId()) {
case R.id.iv_back:
获取日期的公共类DataUtils:
public class DateUtils {
* 通过年份和月份 得到当月的日子个数
* @param year
* @param month
public static int getMonthDays(int year, int month) {
switch (month) {
return 31;
return 30;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
return 29;
return 28;
return -1;
* 返回当前月份几号位于周几
* @param year
* @param month 月份,传入系统获取的,不需要正常的
* @return 日:0 一:1
public static int getFirstDayWeek(int year, int month,int day) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month-1, day);
return calendar.get(Calendar.DAY_OF_WEEK)-1;
* 根据列明获取周
public static String getWeekName(int year, int month, int day) {
int column = getFirstDayWeek(year, month, day);
switch (column) {
return "周日";
return "周一";
return "周二";
return "周三";
return "周四";
return "周五";
return "周六";
return "";
* 得到日期字符串
* @param date
年月日时分秒
public static String getTime(Date date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
return format.format(date);
* 得到日期字符串
* @param date
public static String getTimeYMD(Date date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.format(date);
* 得到日期字符串
* @param date 年月
public static String getTimeYM(Date date){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
return format.format(date);
* 得到日期字符串
* @param date 年
public static String getTimeY(Date date){
SimpleDateFormat format = new SimpleDateFormat("yyyy");
return format.format(date);
* 获取当前年月日字符串
public static String currentYMD(){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.format(new Date());
* 获取当前年月字符串
public static String currentYM(){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
return format.format(new Date());
* 通过日期字符串获取日期对象
* @param dateStr
public static Date Str2DateYMD(String dateStr)
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
date = format.parse(dateStr);
}catch (Exception e){
Log.d("DateUtils.Str2DateYMD()","Str2DateYMD() returned: " + e.toString() );
date = new Date();
* 获取当前所在月份
public static int getToday_MONTH(){
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
return calendar.get(Calendar.MONTH);
* 获取当前所在天
public static int getToday_DAY(){
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
return calendar.get(Calendar.DAY_OF_MONTH);
OK! 就是这样,你还有什么不懂的吗?
不要忘了“顶”一下啊哦!!
另外你也可以了解下"自定义view——带标签的CalendarView"
JAVA做全年考勤日历
JAVA代码:package com.wp.
import java.text.SimpleDateF
import java.util.ArrayL
日历考勤记录
一个简单的日历考勤记录
项目中需要一个日历考勤功能,可以对员工的考勤,以一个直观的日历形式展示出来,比如绿色代表正常,黄色代表迟到,等。
下面的代码就是对此功能的一个简单实现,当然啦,代码还不完善...
自定义日历控件,可以根据需求定制属于自己的日历
自定义日历控件,可以根据需求定制属于自己的日历效果图最近笔者的朋友需要...
自定义可以显示考勤状态的日历控件
最近项目中要做一个可显示考勤状态的日历,于是就整理了一下写了一个demo。先看一下项目中的效果图:
下面来看一下demo的效果图:
不会做动图,只能发图片了。。。初始化会显示今...
好久没有记录最近遇到的问题了,源于实在是有点忙。
好吧,废话不多说,正式开始。
考勤功能的实现,首先需要考虑到考勤人,考勤时间,以及考勤状态这些属性。说起来很简单,无非就是当用户点...
最近开发项目用到一款日历,所以想来总结一下
博主是个java新手,目前在做的一个项目就是考勤排班系统,主要负责的模块是排班模块这一方面。需求上面要求要在显示当月的日历表,日历表上同时动态生成上班时间、下班时间、是否值班、值班类型等功能。
日期类处理:
package com.gcx.
import java.text.DateF
import java.text.ParseE
import ...
CalendarListView 日历列表
听过PullToRefreshListView,听过PinnedSectionListView,那你应该没听过CalendarListView,什么是CalendarListView呢,ListVie...
没有更多推荐了,

我要回帖

更多关于 安卓日历插件 的文章

 

随机推荐