android:id="@+id/lay_title"style="@style/TitleStyle"android:layout_width="fill_parent">android:id="@+id/btn_back"style" />
文档库 最新最全的文档下载
当前位置:文档库 › 安卓日历开发源代码

安卓日历开发源代码

安卓日历开发源代码
安卓日历开发源代码

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/lay_title"

style="@style/TitleStyle"

android:layout_width="fill_parent" >

android:id="@+id/btn_back"

style="@style/TitleLeftButtonStyle" />

android:id="@+id/tv_top"

style="@style/TitleMiddleTextStyle"

android:text="请选择日期" />

android:id="@+id/btn_goback_to_today"

style="@style/TitleRightButtonStyle"

android:text="今天" />

android:layout_width="fill_parent"

android:layout_height="53.0dip"

android:background="#ff394147"

android:gravity="center_vertical" >

android:id="@+id/btn_prev_month"

android:layout_width="0.0dip"

android:layout_height="fill_parent"

android:layout_weight="0.2"

android:gravity="center"

android:orientation="vertical" >

android:id="@+id/left_img"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/triangle06_states"

android:duplicateParentState="true"

android:text=""

android:textSize="16.0dip" />

android:layout_width="0.0dip"

android:layout_height="fill_parent"

android:layout_weight="0.6"

android:gravity="center"

android:orientation="vertical" >

android:id="@+id/tv_month"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:text="xxxx年14月"

android:textColor="#ffffffff"

android:textSize="21.0dip" />

android:id="@+id/btn_next_month"

android:layout_width="0.0dip"

android:layout_height="fill_parent"

android:layout_weight="0.2"

android:gravity="center"

android:orientation="vertical" >

android:id="@+id/right_img"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/triangle05_states"

android:duplicateParentState="true"

android:text=""

android:textSize="16.0dip" />

android:layout_width="fill_parent"

android:layout_height="22.0dip"

android:background="#ff8091a8" >

android:layout_width="0.0dip"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_weight="1.0"

android:gravity="center"

android:text="周日"

android:textColor="#ffffffff"

android:textSize="14.0dip" />

android:layout_width="0.0dip"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_weight="1.0"

android:gravity="center"

android:text="周一"

android:textColor="#ffffffff"

android:textSize="14.0dip" />

android:layout_width="0.0dip"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_weight="1.0"

android:gravity="center"

android:text="周二"

android:textColor="#ffffffff"

android:textSize="14.0dip" />

android:layout_width="0.0dip"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_weight="1.0"

android:gravity="center"

android:text="周三"

android:textColor="#ffffffff"

android:textSize="14.0dip" />

android:layout_width="0.0dip"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_weight="1.0"

android:gravity="center"

android:text="周四"

android:textColor="#ffffffff"

android:textSize="14.0dip" />

android:layout_width="0.0dip"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_weight="1.0"

android:gravity="center"

android:text="周五"

android:textColor="#ffffffff"

android:textSize="14.0dip" />

android:layout_width="0.0dip"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_weight="1.0"

android:gravity="center"

android:text="周六"

android:textColor="#ffffffff"

android:textSize="14.0dip" />

android:id="@+id/gridview"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="#00000000"

android:clickable="true"

android:clipChildren="true"

android:columnWidth="55.0dip"

android:horizontalSpacing="1.0dip"

android:listSelector="@null"

android:numColumns="7"

android:paddingBottom="1.0dip"

android:stretchMode="columnWidth"

android:verticalSpacing="1.0dip" />

xmlns:android="https://www.wendangku.net/doc/1e12083178.html,/apk/res/android"

android:background="#FFFFFF"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

android:gravity="center"

android:layout_width="46dp"

android:layout_height="55dp"

android:id="@+id/tvtext"

/>

/**

* 日历gridview中的每一个item显示的textview

* @author lmw

*

*/

public class CalendarAdapter extends BaseAdapter {

private boolean isLeapyear = false; //是否为闰年

private int daysOfMonth = 0; //某月的天数

private int dayOfWeek = 0; //具体某一天是星期几

private int lastDaysOfMonth = 0; //上一个月的总天数

private Context context;

private String[] dayNumber = new String[42]; //一个gridview中的日期存入此数组中// private static String week[] = {"周日","周一","周二","周三","周四","周五","周六"};

private SpecialCalendar sc = null;

private LunarCalendar lc = null;

private Resources res = null;

private Drawable drawable = null;

private String currentYear = "";

private String currentMonth = "";

private String currentDay = "";

private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d");

private int currentFlag = -1; //用于标记当天

private int[] schDateTagFlag = null; //存储当月所有的日程日期

private String showYear = ""; //用于在头部显示的年份

private String showMonth = ""; //用于在头部显示的月份

private String animalsYear = "";

private String leapMonth = ""; //闰哪一个月

private String cyclical = ""; //天干地支

//系统当前时间

private String sysDate = "";

private String sys_year = "";

private String sys_month = "";

private String sys_day = "";

public CalendarAdapter(){

Date date = new Date();

sysDate = sdf.format(date); //当期日期

sys_year = sysDate.split("-")[0];

sys_month = sysDate.split("-")[1];

sys_day = sysDate.split("-")[2];

}

public CalendarAdapter(Context context,Resources rs,int jumpMonth,int jumpYear,int year_c,int month_c,int day_c){

this();

this.context= context;

sc = new SpecialCalendar();

lc = new LunarCalendar();

this.res = rs;

int stepYear = year_c+jumpYear;

int stepMonth = month_c+jumpMonth ;

if(stepMonth > 0){

//往下一个月滑动

if(stepMonth%12 == 0){

stepYear = year_c + stepMonth/12 -1;

stepMonth = 12;

}else{

stepYear = year_c + stepMonth/12;

stepMonth = stepMonth%12;

}

}else{

//往上一个月滑动

stepYear = year_c - 1 + stepMonth/12;

stepMonth = stepMonth%12 + 12;

if(stepMonth%12 == 0){

}

}

currentYear = String.valueOf(stepYear);; //得到当前的年份

currentMonth = String.valueOf(stepMonth); //得到本月(jumpMonth为滑动的次数,每滑动一次就增加一月或减一月)

currentDay = String.valueOf(day_c); //得到当前日期是哪天

getCalendar(Integer.parseInt(currentYear),Integer.parseInt(currentMonth));

}

public CalendarAdapter(Context context,Resources rs,int year, int month, int day){ this();

this.context= context;

sc = new SpecialCalendar();

lc = new LunarCalendar();

this.res = rs;

currentYear = String.valueOf(year);; //得到跳转到的年份

currentMonth = String.valueOf(month); //得到跳转到的月份

currentDay = String.valueOf(day); //得到跳转到的天

getCalendar(Integer.parseInt(currentYear),Integer.parseInt(currentMonth));

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return dayNumber.length;

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

if(convertView == null){

convertView = LayoutInflater.from(context).inflate(https://www.wendangku.net/doc/1e12083178.html,yout.calendar_item, null);

}

TextView textView = (TextView) convertView.findViewById(https://www.wendangku.net/doc/1e12083178.html,text);

String d = dayNumber[position].split("\\.")[0];

String dv = dayNumber[position].split("\\.")[1];

SpannableString sp = new SpannableString(d+"\n"+dv);

sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, d.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

sp.setSpan(new RelativeSizeSpan(1.2f) , 0, d.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

if(dv != null ||dv != ""){

sp.setSpan(new RelativeSizeSpan(0.75f), d.length()+1, dayNumber[position].length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

}

// sp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 14, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)

textView.setText(sp);

textView.setTextColor(Color.GRAY);

// if(position<7){

// //设置周

// textView.setTextColor(Color.WHITE);

// textView.setBackgroundColor(color.search_txt_color);

// textView.setTextSize(14);

// }

if (position < daysOfMonth + dayOfWeek && position >= dayOfWeek) {

// 当前月信息显示

textView.setTextColor(Color.BLACK);// 当月字体设黑

drawable = res.getDrawable(R.drawable.current_day_bgc);

}

if(schDateTagFlag != null && schDateTagFlag.length >0){

for(int i = 0; i < schDateTagFlag.length; i++){

if(schDateTagFlag[i] == position){

//设置日程标记背景

textView.setBackgroundResource(R.drawable.mark);

}

}

}

if(currentFlag == position){

//设置当天的背景

drawable = res.getDrawable(R.drawable.current_day_bgc);

textView.setBackgroundDrawable(drawable);

textView.setTextColor(Color.WHITE);

}

return convertView;

}

//得到某年的某月的天数且这月的第一天是星期几

public void getCalendar(int year, int month){

isLeapyear = sc.isLeapYear(year); //是否为闰年

daysOfMonth = sc.getDaysOfMonth(isLeapyear, month); //某月的总天数

dayOfWeek = sc.getWeekdayOfMonth(year, month); //某月第一天为星期几

lastDaysOfMonth = sc.getDaysOfMonth(isLeapyear, month-1); //上一个月的总天数

Log.d("DAY", isLeapyear+" ====== "+daysOfMonth+" ============ "+dayOfWeek+" ========= "+lastDaysOfMonth);

getweek(year,month);

}

//将一个月中的每一天的值添加入数组dayNuber中

private void getweek(int year, int month) {

int j = 1;

int flag = 0;

String lunarDay = "";

//得到当前月的所有日程日期(这些日期需要标记)

for (int i = 0; i < dayNumber.length; i++) {

// 周一

// if(i<7){

// dayNumber[i]=week[i]+"."+" ";

// }

if(i < dayOfWeek){ //前一个月

int temp = lastDaysOfMonth - dayOfWeek+1;

lunarDay = lc.getLunarDate(year, month-1, temp+i,false);

dayNumber[i] = (temp + i)+"."+lunarDay;

}else if(i < daysOfMonth + dayOfWeek){ //本月

String day = String.valueOf(i-dayOfWeek+1); //得到的日期

lunarDay = lc.getLunarDate(year, month, i-dayOfWeek+1,false);

dayNumber[i] = i-dayOfWeek+1+"."+lunarDay;

//对于当前月才去标记当前日期

if(sys_year.equals(String.valueOf(year)) && sys_month.equals(String.valueOf(month)) && sys_day.equals(day)){

//标记当前日期

currentFlag = i;

}

setShowYear(String.valueOf(year));

setShowMonth(String.valueOf(month));

setAnimalsYear(lc.animalsYear(year));

setLeapMonth(lc.leapMonth == 0?"":String.valueOf(lc.leapMonth));

setCyclical(lc.cyclical(year));

}else{ //下一个月

lunarDay = lc.getLunarDate(year, month+1, j,false);

dayNumber[i] = j+"."+lunarDay;

j++;

}

}

String abc = "";

for(int i = 0; i < dayNumber.length; i++){

abc = abc+dayNumber[i]+":";

}

Log.d("DAYNUMBER",abc);

}

public void matchScheduleDate(int year, int month, int day){

}

/**

* 点击每一个item时返回item中的日期

* @param position

* @return

*/

public String getDateByClickItem(int position){

return dayNumber[position];

}

/**

* 在点击gridView时,得到这个月中第一天的位置

* @return

*/

public int getStartPositon(){

return dayOfWeek+7;

/**

* 在点击gridView时,得到这个月中最后一天的位置* @return

*/

public int getEndPosition(){

return (dayOfWeek+daysOfMonth+7)-1;

}

public String getShowYear() {

return showYear;

}

public void setShowYear(String showYear) {

this.showYear = showYear;

}

public String getShowMonth() {

return showMonth;

}

public void setShowMonth(String showMonth) { this.showMonth = showMonth;

}

public String getAnimalsYear() {

return animalsYear;

}

public void setAnimalsYear(String animalsYear) { this.animalsYear = animalsYear;

}

public String getLeapMonth() {

return leapMonth;

}

public void setLeapMonth(String leapMonth) {

this.leapMonth = leapMonth;

}

public String getCyclical() {

return cyclical;

public void setCyclical(String cyclical) {

this.cyclical = cyclical;

}

}

import java.util.Calendar;

public class SpecialCalendar {

private int daysOfMonth = 0; //某月的天数

private int dayOfWeek = 0; //具体某一天是星期几

// 判断是否为闰年

public boolean isLeapYear(int year) {

if (year % 100 == 0 && year % 400 == 0) {

return true;

} else if (year % 100 != 0 && year % 4 == 0) {

return true;

}

return false;

}

//得到某月有多少天数

public int getDaysOfMonth(boolean isLeapyear, int month) { switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

daysOfMonth = 31;

break;

case 4:

case 6:

case 9:

case 11:

daysOfMonth = 30;

break;

case 2:

if (isLeapyear) {

daysOfMonth = 29;

} else {

daysOfMonth = 28;

}

}

return daysOfMonth;

}

//指定某年中的某月的第一天是星期几

public int getWeekdayOfMonth(int year, int month){

Calendar cal = Calendar.getInstance();

cal.set(year, month-1, 1);

dayOfWeek = cal.get(Calendar.DAY_OF_WEEK)-1;

return dayOfWeek;

}

}

public class LunarCalendar {

private int year; //农历的年份

private int month;

private int day;

private String lunarMonth; //农历的月份

private boolean leap;

public int leapMonth = 0; //闰的是哪个月

final static String chineseNumber[] = { "一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二" };

static SimpleDateFormat chineseDateFormat = new SimpleDateFormat(

"yyyy年MM月dd日");

final static long[] lunarInfo = new long[] { 0x04bd8, 0x04ae0, 0x0a570,

0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2,

0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0,

0x0ada2, 0x095b0, 0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50,

0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566,

0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0,

0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4,

0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550,

0x15355, 0x04da0, 0x0a5d0, 0x14573, 0x052d0, 0x0a9a8, 0x0e950,

0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260,

0x0f263, 0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0,

0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0, 0x195a6,

0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40,

0x0af46, 0x0ab60, 0x09570, 0x04af5, 0x04970, 0x064b0, 0x074a3,

0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960,

0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0,

0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9,

0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0,

0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65,

0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0,

0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, 0x0b5a0, 0x056d0, 0x055b2,

0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0 };

//农历部分假日

final static String[] lunarHoliday = new String[]{

"0101 春节",

"0115 元宵",

"0505 端午",

"0707 七夕情人",

"0715 中元",

"0815 中秋",

"0909 重阳",

"1208 腊八",

"1224 小年",

"0100 除夕"

};

//公历部分节假日

final static String[] solarHoliday = new String[]{

"0101 元旦",

"0214 情人",

"0308 妇女",

"0312 植树",

"0315 消费者权益日",

"0401 愚人",

"0501 劳动",

"0504 青年",

"0512 护士",

"0601 儿童",

"0701 建党",

"0801 建军",

"0808 父亲",

"0909 毛泽东逝世纪念",

"0910 教师",

"0928 孔子诞辰",

"1001 国庆",

"1006 老人",

"1024 联合国日",

"1112 孙中山诞辰纪念",

"1220 澳门回归纪念",

"1225 圣诞",

"1226 毛泽东诞辰纪念" };

// ====== 传回农历y年的总天数

final private static int yearDays(int y) {

int i, sum = 348;

for (i = 0x8000; i > 0x8; i >>= 1) {

if ((lunarInfo[y - 1900] & i) != 0)

sum += 1;

}

return (sum + leapDays(y));

}

// ====== 传回农历y年闰月的天数

final private static int leapDays(int y) {

if (leapMonth(y) != 0) {

if ((lunarInfo[y - 1900] & 0x10000) != 0)

return 30;

else

return 29;

} else

return 0;

}

// ====== 传回农历y年闰哪个月1-12 , 没闰传回0

final private static int leapMonth(int y) {

return (int) (lunarInfo[y - 1900] & 0xf);

}

// ====== 传回农历y年m月的总天数

final private static int monthDays(int y, int m) {

if ((lunarInfo[y - 1900] & (0x10000 >> m)) == 0)

return 29;

else

return 30;

}

// ====== 传回农历y年的生肖

final public String animalsYear(int year) {

final String[] Animals = new String[] { "鼠", "牛", "虎", "兔", "龙", "蛇",

"马", "羊", "猴", "鸡", "狗", "猪" };

return Animals[(year - 4) % 12];

}

// ====== 传入月日的offset 传回干支, 0=甲子

final private static String cyclicalm(int num) {

final String[] Gan = new String[] { "甲", "乙", "丙", "丁", "戊", "己", "庚",

"辛", "壬", "癸" };

final String[] Zhi = new String[] { "子", "丑", "寅", "卯", "辰", "巳", "午",

"未", "申", "酉", "戌", "亥" };

return (Gan[num % 10] + Zhi[num % 12]);

}

// ====== 传入offset 传回干支, 0=甲子

final public String cyclical(int year) {

int num = year - 1900 + 36;

return (cyclicalm(num));

}

public static String getChinaDayString(int day) {

String chineseTen[] = { "初", "十", "廿", "卅" };

int n = day % 10 == 0 ? 9 : day % 10 - 1;

if (day > 30)

return "";

if (day == 10)

return "初十";

else

return chineseTen[day / 10] + chineseNumber[n];

}

/** */

/**

* 传出y年m月d日对应的农历. yearCyl3:农历年与1864的相差数? monCyl4:从1900年1月31日以来,闰月数

* dayCyl5:与1900年1月31日相差的天数,再加40 ?

*

* isday: 这个参数为false---日期为节假日时,阴历日期就返回节假日,true---不管日期是否为节假日依然返回这天对应的阴历日期

* @param cal

* @return

*/

public String getLunarDate(int year_log, int month_log, int day_log, boolean isday) {

// @SuppressWarnings("unused")

int yearCyl, monCyl, dayCyl;

//int leapMonth = 0;

String nowadays;

Date baseDate = null;

Date nowaday = null;

try {

baseDate = chineseDateFormat.parse("1900年1月31日");

} catch (ParseException e) {

e.printStackTrace(); // To change body of catch statement use

// Options | File Templates.

}

nowadays = year_log + "年" + month_log + "月" + day_log + "日";

try {

nowaday = chineseDateFormat.parse(nowadays);

} catch (ParseException e) {

e.printStackTrace(); // To change body of catch statement use

// Options | File Templates.

}

// 求出和1900年1月31日相差的天数

int offset = (int) ((nowaday.getTime() - baseDate.getTime()) / 86400000L); dayCyl = offset + 40;

monCyl = 14;

// 用offset减去每农历年的天数

// 计算当天是农历第几天

// i最终结果是农历的年份

// offset是当年的第几天

int iYear, daysOfYear = 0;

for (iYear = 1900; iYear < 10000 && offset > 0; iYear++) {

daysOfYear = yearDays(iYear);

offset -= daysOfYear;

monCyl += 12;

}

if (offset < 0) {

offset += daysOfYear;

iYear--;

monCyl -= 12;

}

// 农历年份

year = iYear;

setYear(year); //设置公历对应的农历年份

yearCyl = iYear - 1864;

leapMonth = leapMonth(iYear); // 闰哪个月,1-12

leap = false;

// 用当年的天数offset,逐个减去每月(农历)的天数,求出当天是本月的第几天int iMonth, daysOfMonth = 0;

for (iMonth = 1; iMonth < 13 && offset > 0; iMonth++) {

// 闰月

if (leapMonth > 0 && iMonth == (leapMonth + 1) && !leap) {

--iMonth;

leap = true;

daysOfMonth = leapDays(year);

} else

daysOfMonth = monthDays(year, iMonth);

offset -= daysOfMonth;

// 解除闰月

if (leap && iMonth == (leapMonth + 1))

leap = false;

if (!leap)

monCyl++;

}

// offset为0时,并且刚才计算的月份是闰月,要校正

if (offset == 0 && leapMonth > 0 && iMonth == leapMonth + 1) {

if (leap) {

leap = false;

} else {

leap = true;

--iMonth;

--monCyl;

}

}

// offset小于0时,也要校正

if (offset < 0) {

offset += daysOfMonth;

--iMonth;

--monCyl;

}

month = iMonth;

setLunarMonth(chineseNumber[month - 1] + "月"); //设置对应的阴历月份

day = offset + 1;

if(!isday){

//如果日期为节假日则阴历日期则返回节假日

//setLeapMonth(leapMonth);

for(int i = 0; i < solarHoliday.length; i++){

//返回公历节假日名称

String sd = solarHoliday[i].split(" ")[0]; //节假日的日期

String sdv = solarHoliday[i].split(" ")[1]; //节假日的名称

String smonth_v = month_log+"";

String sday_v = day_log+"";

String smd = "";

if(month_log < 10){

smonth_v = "0"+month_log;

}

if(day_log < 10){

sday_v = "0"+day_log;

}

smd = smonth_v+sday_v;

if(sd.trim().equals(smd.trim())){

return sdv;

}

}

for(int i = 0; i < lunarHoliday.length; i++){

//返回农历节假日名称

String ld =lunarHoliday[i].split(" ")[0]; //节假日的日期

String ldv = lunarHoliday[i].split(" ")[1]; //节假日的名称

String lmonth_v = month+"";

String lday_v = day+"";

String lmd = "";

if(month < 10){

lmonth_v = "0"+month;

}

if(day < 10){

lday_v = "0"+day;

}

lmd = lmonth_v+lday_v;

if(ld.trim().equals(lmd.trim())){

return ldv;

}

}

}

if (day == 1)

return chineseNumber[month - 1] + "月";

else

return getChinaDayString(day);

}

public String toString() {

if (chineseNumber[month - 1] == "一" && getChinaDayString(day) == "初一") return "农历" + year + "年";

else if (getChinaDayString(day) == "初一")

return chineseNumber[month - 1] + "月";

else

return getChinaDayString(day);

// return year + "年" + (leap ? "闰" : "") + chineseNumber[month - 1] +

// "月" + getChinaDayString(day);

}

/*public static void main(String[] args) {

System.out.println(new LunarCalendar().getLunarDate(2012, 1, 23));

}*/

public int getLeapMonth() {

return leapMonth;

}

public void setLeapMonth(int leapMonth) {

this.leapMonth = leapMonth;

}

/**

* 得到当前日期对应的阴历月份

* @return

*/

public String getLunarMonth() {

return lunarMonth;

}

public void setLunarMonth(String lunarMonth) {

this.lunarMonth = lunarMonth;

}

/**

* 得到当前年对应的农历年份

* @return

*/

public int getYear() {

C语言实训--万年历源代码

# include #include #include #include #include # define YEAR 365 int numday[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}}; int leap(int year); int calday(int y,int m); int counterdays(int year,int month,int day); int week(int year,int month,int day); int eachyeartotal(int year,int month,int day); int maxDay(int y,int month); void print(int y,int m,int w); void festival (int year,int month,int day); int IsLeap(int y); int guanli(int i); void rili(int year,int month); int rili1(); void rili2(); void rili3(); void rili4(); void rili5(); void fan(); void show(int year,int month,int date,int sec,int mini,int hour); int main() { int i; printf("***************************************\n"); printf("1.查询日历,输入年份:\n"); printf("2.查询该月日历及对应星期,输入年份和月份:\n"); printf("3.查询星期几及节日,输入年月日:\n"); printf("4.距您输入日期还有多少天,输入日期:\n"); printf("5.通过键盘上下控制不同年月日:\n"); scanf("%d",&i); guanli(i); return 0; } int guanli(int i) { switch(i) { case 1:rili1();return main();

万年历系统源代码

#include #include #include #include #include #define KEYNUMUp 0x48 #define KEYNUMDown 0x50 #define KEYNUMLeft 0x4b #define KEYNUMRight 0x4d #define KEYNUMPageUp 0x49 #define KEYNUMPageDown 0x51 int year,month,day; //全局变量记录时间 int daysOfMonth[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31, 31,30,31, 30,31}}; int runYear(int year) //判断是否是闰年 { int flag=0; if(year%400==0||(year%4==0&&year%100!=0)) flag=1; return flag; } struct tm* getDay()//从系统取得当前时间 { time_t timer; struct tm* gmt; time(&timer); gmt=localtime(&timer); return gmt; } int dayExame(int year,int month,int day)//检查日期是否正确 { if(year<0||month<1||month>12||day<1||day>31) return 0; switch(month) { case 1: case 3: case 5: case 7: case 8: case 10:

Android日历完整实现

实用第一智慧密集 2011. 05 实现基于Android 的日历系统 摘要: Android 作为目前较为流行的智能手机操作系统已成为大多数人的首选。在美国乃至世界 的很多地方的出货量已经超越Iphone,成为世界上最大智能手机操作系统。因此,世界各地的程 序员都跃跃欲试地想学习Android 的开发,并希望从中捞得属于自己的第一桶金。在此给出一个 基于Android 的日历系统的完整实现过程。 关键词: Android;日历;绘画;农历;记录;提醒 1 引言 要实现的日历除了常规的日历功能外,还可以显示与当前 日期相关的信息,如当前日期的农历日期、天干地支、节日等 信息。下面先看看日历的绚丽界面,如图1、图2 所示。 主要功能

2 绘画基础 由于实现的日历系统要涉及到大量的Android 绘图技术, 因此,要简单介绍Android 的绘图技术。 绘制图形通常在Android.view.View 或其子类的onDraw 方 法中进行。该方法的定义如下: protected void onDraw(Canvas canvas); 其中Canvas 对象提供了大量用于绘图的方法,这些方法 主要包括绘制像素点、直线、圆形、弧、文本,这些都是组成 复杂图形的基本元素。如果要画更复杂的图形,可以采用组合 这些图形基本元素的方式来完成。例如,可以采用画3 条直线 的方式来画三角形。下面来看一下绘制图形基本元素的方法。 2.1 绘制像素点 public native void drawPoint(float x, float y, Paint paint); // 画一个像素点 public native void drawPoints(float[] pts, int offset, int count, Paint paint); // 画多个像素点 public void drawPoints(float[] pts, Paint paint); // 画多个像素点 参数的含义如下: (1) x:像素点的横坐标。 (2) y:像素点的纵坐标。 (3) paint:描述像素点属性的Paint 对象。可设置像素点 的大小、颜色等属性。绘制其他图形元素的Paint 对象与绘制 像素点的Paint 对象的含义相同。在绘制具体的图形元素时可 根据实际的情况设置Paint 对象。 (4) pts: drawPoints 方法可一次性画多个像素点。pts 参数 表示多个像素点的坐标。该数组元素必须是偶数个,两个一组 为一个像素点的坐标。 (5) offset: drawPoints 方法可以取pts 数组中的一部分连 续元素作为像素点的坐标,因此,需要通过offset 参数来指定 取得数组中连续元素的第一个元素的位置,也就是元素偏移 量,从0 开始。例如,要从第3 个元素开始取数组元素,那么 offset 参数值就是2。 (6) count:要获得的数组元素个数, count 必须为偶数 (两个数组元素为一个像素点的坐标)。 要注意的是, offset 可以从任意一个元素开始取值,例如, offset 可以为1,然后count 为4。

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

基于android的手机日程管理系统需求规格说明书

需求说明书 一、引言: 1.背景: 手机日程管理系统就是针对当代大学生的日程管理需求,在基于android内核以及架构的基础上,采用自定义控件和用户接口,利用后台服务实施定时提醒、自动删除等技术,实现手机的个人日程管理、课程表管理、定时提醒删除、安全设置等多种功能。 2.编写目的: 当下大学生生活作息时间紊乱,社团活动、社交和游戏等搞的众多大学生毫无时间观念,重要的事情和约会等被打乱。在这种情况下,本手机日程管理系统的开发显得很有意义,帮你管理平时安排,提醒你的重要时间和约会。 二、系统特性: 1.系统角色 用户: 用户 设置日程 设置今日安排 查看课程表 查看日历 设置功能图1 用户用例图 2.数据管理 (1)用户添加课程表数据 使用者:用户 目的:添加课程表信息 基本事件流: 1、用户从主界面进入课程表添加界面 2、用户点击添加按钮跳转输入信息界面,输入信息,点击确认按钮提交数据库

(2)用户添加今日安排数据 使用者:用户 目的:添加今日安排信息 基本事件流: 1、用户从主界面进入今日安排界面 2、用户点击添加按钮跳转输入信息界面,输入信息,点击确认按钮提交数据库 3、设置日程标题、地点、是否为重要日程、是否为全天计划、起始时间、结束时间、是否重复设置、是否提醒、提前多长时间提醒等。 (3)用户添加日程安排数据 使用者:用户 目的:添加日程安排信息 基本事件流: 1、用户从主界面进入日程安排界面 2、用户点击添加按钮跳转输入信息界面,输入信息,点击确认按钮提交数据库 3、设置日程标题、地点、是否为重要日程、是否为全天计划、起始时间、结束时间、是否重复设置、是否提醒、提前多长时间提醒等。 3.数据查询 (1)用户查询今日安排数据 使用者:用户 目的:查询今日安排 基本事件流: 1、用户从主界面进入今日安排界面 2、用户即可查看简单的今日日程信息,点击日程标题可查看具体日程信息(2)用户查询课程数据 使用者:用户 目的:查询课程 基本事件流: 1、用户从主界面进入课程界面 2、用户即可查看课程信息,点击课程标题可查看具体信息 (3)用户查询近日安排数据 使用者:用户 目的:查询近日安排 基本事件流: 1、用户从主界面进入日程安排界面

java课程设计 万年历 源代码

华北科技学院 课程设计报告 面向对象程序设计(Java) 班级: 电商B09-3 姓名: 周婷玉 设计题目:__________万年历________________ 设计时间: 2011-12-28 至2012-01-06 指导教师:_______ 郭慧____________ _____ 评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:___________评阅教师:_____________

课程设计说明书 1、课程设计的目的 a)掌握面向对象程序设计基本要素(封装、继承、多态) b)掌握JA VA语言常用类包及其常用方法和JA VA语言基本语法 c)掌握基于AWT的图形用户界面设计 i.常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、 滚动条等。 ii.事件处理机制 d)掌握布局、对话框的使用 e)掌握发布JA VA应用程序 2、功能模块简介和系统结构图 需求分析:本程序的要求为: 1.使用图形用户界面 2.能够实现日期与星期的查询 3.实现当日的时间备忘 功能设计: 1.能以月历形式显示日期与星期 2.支持用户自己输入年份,并提供月份的下拉形式来选择查询 3.添加当日行事历,储存与清除功能

安卓日历开发源代码

基于Android的日历系统的设计与实现毕业设计(论文)

华北电力大学本科毕业设计(论文) 毕业设计(论文) ` 题目基于Android的日历系统 的设计与实现 二○一四年六月

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

Android日历需求分析报告(···)

1.1编写目的 为广大的安卓手机用户提供一个实用的,强大的日历软件。 1.2项目背景 软件名称:备忘迷你日历 总负责人:程浩老师 该项目组员: 组长: 刘泽文 其他组员: 严小丽 陈禄海 陈毅军 蔡博 杨丰年 1.3术语说明 用到的术语的定义及英文(待定) 1.4参考资料(暂略) 2.项目概述 2.1待开发的软件的一般描述 安卓市场上现在有很多的日历软件和备忘软件,但是能够很好结合日历与备忘功能的软件却不多,为此,我们计划做一个实用的,易用的,强大的,方便的,有个性的备忘迷你日历。 2.2待开发的软件的主要功能(图&表说明易理解:顶层数据流图,用例图,系统流程图,层次方框图) 日历查询功能; 备忘功能; 闹铃提醒功能 2.3用户特征和水平 该软件主要面向拥有安卓2.3及以上系统的手机的中国用户,本软件不提供简体中文以外的其他文字形式 2.4运行环境 操作系统Android 2.3以上 软件运行环境(硬件平台,硬件要求,操作系统版本等) 2.5条件与限制 影响开发人员的在设计时的约束:开发时间和开发 经验 硬件限制:当前手机硬件配置 1.功能需求 3.1功能划分 ①日历查询功能 ②备忘笔记 ③闹铃提醒 列举全部要实现的功能(文字,图标,数学公式等

3.2功能描述 a.日历查询功能: 查询范围从1980年1月1号到2030年12月31号; 默认日期是程序发布的日期; 具有公历及其对应的农历,可以显示每年的24节气,我国的传统节日及国外一些在中国具有广泛影响的节日及一些特殊的纪念日(如世界地球日等),每天所处的是星期几; 用户可以随心查询,点击年份,就可以改变查询的年份,点击月份,就可以改变查询的月份,也可以输入一定格式的公历日期可查询农历或输入农历可以查询公历; 节日及纪念日搜索功能:例如输入2013 母亲节就可以显示2013年母亲节的完整日期。 可以显示当天的天气情况,气温的高低,空气的质量,及一些简单的生活小提示。 b.备忘笔记: 用户可以随意添加备忘录,添加备忘录时用户可以点击想要写备忘的日期,进入输入记录状态,并且可以设定具体需要备忘的时间。 例如:在2013年6月中点击19日,之后可以设定14:30将要做XX事 可以进行一般形式手写或虚拟键盘输入也可进行手写涂鸦形式输入: 例如:一个完整比较完整的备忘录 2013年6月20,8:20去XXX上课,配置好安卓开发环境及进行本组项目的具体介绍,21:00和XX去XX地点约会。 当到了预先设定的时间的时候可以自动显示到手机屏幕之上,并持续一段时间(如30秒或45秒),当没有收到用户确认知道该备忘之后,可以过一段时间之后再次显示,如5或10分钟之后。 c.闹铃提醒功能: 可以在实现备忘录后开启此功能,实现备忘内容的闹铃提醒,在备忘内容显示在屏幕之上后伴随有闹铃提醒,可以用来提醒用户查看备忘录,以防用户忘记自己所备忘的重要事情,而且铃声可以根据自己的喜好更换,不同的事情可以设定不同的铃声。 例如: 吃早餐8.00 铃声1 涛声依旧 去XXX上课8.30 铃声4 叮叮当 配置好安卓编程环境16.30 铃声1 涛声依旧 和XX约会21.30 铃声2 好好恋爱 铃声会持续一段时间(如30秒或45秒),当收到用户确认后铃声将会停止闹铃,如果如果没有收到确认指令闹铃将会持续到预先设定的时间结束,并且过一段时间之后将会再次显示(如5或10分钟之后)。 例如2013年6月19日21:30手机屏幕有对话框显示和XX约会同时手机会响铃《好好恋爱》 d.当前日期的未来五天可以进行天气预报,帮助用户指定近期计划 3.外部接口要求 4.1用户界面

基于android的手机日程管理系统概要设计说明书

基于Android的手机日程管理系统的设计 与实现 概要设计说明书 学生姓名:王炜 学号: 0911******* 指导教师:刘雪梅 课题类型: AXP 专业:软件工程 学部:信息学部 审核组长: 北京城市学院 2013 年 2月 19日

日期版本说明作者2013/2/19 1 未评审的初稿王炜2013/3/3 2 版本内容删改王炜

目录 1引言 (1) 1.1 编写目的 (1) 1.2 背景 (1) 1.3定义 (1) 1.4参考资料 (1) 2总体设计 (2) 2.1需求规定 (2) 2.2 运行环境 (2) 2.3 基本设计概念和处理流程 (2) 2.4结构 (3) 2.4.1 设置课程表 (3) 2.4.2 查看课程表 (3) 2.4.3 新增日程 (4) 2.4.4 查看日程 (4) 2.4.5 查看日历 (4) 2.4.6 设定安全密码 (5) 2.5人工处理过程 (5) 2.6尚未问决的问题 (5) 3 接口设计 (5) 3.1用户接口 (5) 3.2内部接口 (5) 3.2外部接口 (6) 4 运行设计 (7) 4.1运行模块组合 (7) 4.2 运行控制 (7) 4.3 运行时间 (7) 5 系统出错处理设计 (7) 5.1 出错信息 (7) 5.2补救措施 (7) 5.3 系统维护设计 (8)

1引言 1.1 编写目的 编写此文档的目的是:详细、准确和全面地定义基于android的手机日程管理系统的概要设计,以利于指导该系统后续的开发工作;本文档所描述的概要设计作为该项目最终验收的标准和依据;给工作人员提供一定的维护依据,方便在以后的维修工作中提供方便。 文档读者:专业的工作技术人员对维修系统时参考的文档。 1.2 背景 软件名称:基于android的手机日程管理系统 任务提出者:毕业设计审核组 开发者:王炜 用户以及将运行该软件的平台:android手机用户 1.3定义 Broadcast Receiver:在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而Broadcast Receiver是对发送出来的Broadcast 进行过滤接受并响应的一类组件。 My Item Adapter:涉及到对单个条目的是否完成标记以及删除的设置,所以在这里重写了一个适配器My Item Adapter继承Base Adapter,并在get—view() 方法中手动映射数据。 1.4参考资料 [1]赵亮;张维;;基于Android技术的界面设计与研究[J];电脑知识与技术;2009年29期. [2]陈昱;江兰帆;;基于Google Android平台的移动开发研究[J];福建电脑;2008年11期. [3]蔡罗成;;Android后台监听实现机制浅析[J];信息安全与通信保密;2010年06期. [4]王会进,方锦亮;基于JA V A的自定义控件应用技术研究[J];微型机与应用;2005

java日历制作源代码

import java.util.Scanner; public class rili{ public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("请输入年份,并回车:"); int year=in.nextInt(); System.out.println("请输入月份,并回车:"); int month=in.nextInt(); int sum=0; for(int i=1900;i

基于Android平台的日历提醒软件的设计与实现

1 引言 随着移动互联网的高速发展,人们已经无法离开移动终端,智能手机也已经越来越普及,对人们的生活产生了巨大的影响,人们可以随时随地使用手机,随时随地来查看信息,随时随地用来上网等,当然也急需青春地了解到自己每天所需要完成的事情,或是需要记录一些容易忘记的重要事件,并能有一个功能完善的软件来帮助人们完成这些事情。在这样的大背景下,基于安卓平台的日历提醒软件也逐渐进入安卓开发者的视野中。 1.1 课题背景 Android是一种基于Linux平台的开放源代码的操作系统,主要使用在移动终端上。Android操作系统最初由AndyRubin开发,最早的时候主要用在手机平台上。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上[1]。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%[2]。 Android是一种开放源代码的操作系统,随着Android的迅速发展,如今许多开发者运用其他不用的编程语言来编写Android应用程序,如今已经不再是以前那种只允许运用Java语言来开发Android应用程序的单调局面,因此众多开发者更加欢迎Android平台,Android已经成为第一个真正的开放式操作系统。 1.2 研究的目的与意义 进入互联网时代之后,随着人们对信息需求量,准确性的加大。人们对时间,日期的准确性有更大的需求,传统的日历已经不能满足人们的要求,电子万年历应运而生,大大方便了人们对时间日期的掌握,使每个用户都能随时在电脑旁边掌握日期,节日等信息。但是随着进入21世纪——移动互联网高速发展的时代,人们每时每刻都在使用移动终端,智能机已经被普及,大量进入人们手中,人们不管在何时何地都能利用移动终端来查看各类消息等,当然无论在任何时候,人们需要准确地掌握日期、节日,提醒等重要消息,手机版日历提醒系统就在这样的大背景下被开发出来。本文提到的日历系统是一款专注于为用户提供时间管理的Android软件,兼备公历、中国农历、各类节日、实时提醒等信息,方便用户每一天的生活。几乎在每一台Android

安卓开发的自制计算器源代码

这是本人自己用安卓编写的计算器,代码的优化可能有所问题,不过大家都在学习阶段,欢迎大家批评指正,还是上源码吧。 先来运行图 package com.example.nanchen.exam_1_1; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Button btn0; private Button btn1;

private Button btn2; private Button btn3; private Button btn4; private Button btn5; private Button btn6; private Button btn7; private Button btn8; private Button btn9; private Button btnAdd; private Button btnSub; private Button btnMul; private Button btnDiv; private Button btnDec; private Button btnEqual; private Button btnClear; private Button btnBackSpace; private TextView textView_result; double num1 = 0,num2 = 0,result = 0;//定义存储结果和两个操作数boolean isCheckEqu = false;//检测是否点击了等于 int op = 0;//定义运算符 boolean hasDec = false; boolean hasOp = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.wendangku.net/doc/1e12083178.html,yout.activity_main); textView_result = (TextView) findViewById(R.id.result); btn0 = (Button) findViewById(R.id.btn0); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn3 = (Button) findViewById(R.id.btn3); btn4 = (Button) findViewById(R.id.btn4); btn5 = (Button) findViewById(R.id.btn5); btn6 = (Button) findViewById(R.id.btn6); btn7 = (Button) findViewById(R.id.btn7); btn8 = (Button) findViewById(R.id.btn8); btn9 = (Button) findViewById(R.id.btn9); btnAdd = (Button) findViewById(R.id.btn10); btnSub = (Button) findViewById(R.id.btn11);

基于Android的日历系统的设计与实现

毕 业 设 计(论文) ` 院 系 控制与计算机工程学院计算机系 专业班级 软件工程1001班 学生姓名 指导教师 二○一四年六月 题 目 基于Android 的日历系统 的设计与实现

基于Android的日历系统的设计与实现 摘要 Android系统凭借其良好的用户体验、低廉的成本及高开放性产生了巨大的应用量和广阔的应用面。如今,基于Android系统的应用极为丰富,从输入法到影音播放器,从系统工具到网页浏览器,从社交网络客户端到学习办公助手工具,以及形式繁多的游戏应用,都有力体现了Android平台的强大的适应性和发展潜力。 而日历应用作为智能终端的出厂必备控件,更是Android系统中不可或缺的一部分。而应用开发商力求为客户带来更好的用户体验,将日历这一原本普通的生活用品打造成植于移动终端中的生活助手,且界面风格迥异,功能也是趋于多样化和一体化。 本文通过论述对基于Android的日历系统的开发的全过程,研究了Android系统的开发环境、核心构架、主要组件,展示了开发移动应用的一般过程,并对Android平台的背景、现状和发展前景进行了讨论。本次项目所实现的日历系统,除了最基本的日期信息查询功能外,还具备了公历转换农历功能、指定日期跳转功能、当天日期定位功能和日程管理功能。通过转换功能,用户可将希望查询的公历日期转为农历日期;如果用户想知道某一天或某个月有什么节日,可以使用跳转功能;在主界面没有显示当月日期时,用户可通过定位功能回到当天日期;而日程管理功能则为用户提供了类似备忘录的平台。 关键词;Android;移动终端;手机日历;移动应用开发

安卓音乐播放器开发,含源代码

基于android平台的音乐播放器开发 实验报告 学生姓名:温从林 学号:0215 班级:计自1201

第一章引言 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于Android平台的。 编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。 开发环境

Eclipse、Android SDK 第二章系统需求分析功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作,启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图播放器基本用例图

基于Android平台的日历系统的设计

基于Android平台的日历系统的设计

基于Android平台的日历系统的设计 摘要:针对智能手机用户对日历的需求,基于Android内核和架构,设计了自定义控件和相关算法,实现了对日历的查看、日期切换、节日查询等多项功能,并附加了记事本、身体健康数据记录等常见功能,体现了日历系统的实用性和方便性。 关键词:Android;日历查看;节日查询 中图分类号:TP311 文献标识码:A 文章编号:1009-3044()12-0058-02 1 概述 这是一个移动互联网应用越来越普遍的年代,智能手机的用户群体越来越广大,随处可见拿着手机的人群。随着生活节奏的加快,人们对信息需求量越来越大,对信息准确性要求越来越高,这些都要基于对时间和日期的更高和更多的需求,传统的日历已经不能满足人们的要求,手机平台上的日历系统应运而生,用户能够随时经过手机掌握日期和节日等信息。 本设计的预期目标为: 1)功能强大:除了日历的基本功能(查看日期)外,还实现了农历阴历互转、健康查询、日期查询、每日签到等功能。 2)操作方便:对于Android手机用户来说,本软件使用方便简单,功能使用方法一看便知,大大减少了用户的操作难度。

2 关键性技术 2.1 Android平台 Android是一种开放源码的操作系统,是现在智能手机采用的主流操作系统。Android操作系统最初由AndyRubin开发,最初只能使用Java语言进行基于Android平台的应用程序的开发,随着技术的成熟,Android快速发展,现在已经能够使用其它编程语言来进行基于Android平台的应用程序开发,因此越来越多的设计开发人员投入到基于Android平台的应用程序开发中,Android平台得到发展,充分体现其开放性。 2.2 XML技术 XML,即可扩展标记语言,用于标记电子文件使其具有结构性的标记语言,能够用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。 3 需求分析 3.1 系统需求 日历系统的用户是Android手机用户群体,因此,系统要满足大部分Android用户的需要,需要具备查看日历及相关的一些功能。 3.2 技术需求 日历系统采用现在最火的移动终端系统Android系统,利用分层设计的原则。需要开发人员熟悉Android平台和Java编程,

C语言日历显示课程设计报告(含源代码)

高级语言程序设计课程设计题目: 专业计算机类 班级计算机类1102 学生 学号 指导教师_______________ 起止时间2012.2.13——2012.2.17 2012年2月

目录 实验报告 (3) 必做题: (3) 选做题: (8) 题目10 写一个日历显示程序 (8) 流程图:(如下) (14) 工程代码: (19) 心得体会 (24)

实验报告 必做题: (1)编一程序对2种排序方法进行比较:交换法、选择法、插入法、冒泡法四种方法选2。具体比较方法是随机生成一组(≥300个)的100以内的整数数据,用选定的2种排序方法进行排序。纪录排序过程中数据比较和交换的次数,输出比较结果。 #include #include int main(void) { int a[300],b[300]; int i,j,temp,t; int s=0,p=0,s1=0,p1=0; for(i=0;i<300;i++) { a[i]=rand()%100; b[i ]=a[i]; } for(i=0;i<299;i++){ for(j=i+1;j<300;j++) { if(a[i]

{ t=i; for(j=i+1;j<300;j++) { if(b[t]

(开题报告)基于Android的日程表管理系统设计与实现--

基于Android的日程表管理系统设计与实现 一.课题的意义 Android是由Andy Rubin创立的一个手机操作系统,后来被Google公司收购。Google公司希望与各方共同建立一个标准化、开放式的移动电话软件平台,从而在移动产业内形成一个开放式的操作平台。 目前使用Android系统的手机的数量已经超越iPhone,Android系统已经成为全球使用量最大的手机系统。 相关数据显示:1.Android用户已经达9亿,不就会达到10亿; 2.仅有10%的国家没有被Android覆盖 3.人才需求仍然巨大。智能招聘网站上每天大约有2000多个Android人才招聘。 Android的原意为“机器人”,Google将Android的标志设计为绿色机器人,不但表达了字面意思,而且表达Android系统是一个符合环保概念、轻薄短小、功能强大的移动系统,意在使其成为第一个真正为手机打造的开放并且完整的系统。 随着智能移动设备和物联网的快速发展,对于智能手机的发展前景,人们更希望将大部分生活所需的直接用一部智能手机就可以搞定。比如:各种支付,手机开锁,手机当遥控器等等。 以往,我们都是用备忘录来记录我们的日程安排,在这个注重效率和便利的快节奏社会,这或多或少给我们生活带来了些不便。手机日程管理系统可以为人们日常生活提供方便,而且能让我们更充分的利用时间,规划我们的生活,让我们的生活有条不紊。我们知道,传统的备忘录大多数是用便签纸或者笔记本来记录,其带来了些不便,如易丢失、携带不便以及容易损坏等。而手机,我们却

往往是生活必备品,联系好友、上网冲浪以及视频娱乐等,我们都可以用手机实现。因此,手机日程管理将代替传统备忘录。我们可以随时随地拿出手机查看我们的日程安排,而且手机日常管理系统,还提供到点提醒功能,让我们能够准时完成我们的日程安排。手机日程管理系统就显得很有必要,如果有一个很好的手机日常管理软件,就可以大大方便人们的生活。 This barrier to application development began to crumble in November of 2007 when Google, under the Open Handset Alliance, released Android. The Open Handset Alliance is a group of hardware and software developers, including Google, NTT DoCoMo, Sprint Nextel, and HTC, whose goal is to create a more open cell phone environment. The first product to be released under the alliance is the mobile device operating system, Android. (For more information about the Open Handset Alliance, see https://www.wendangku.net/doc/1e12083178.html,.) With the release of Android, Google made available a host of development tools and tutorials to aid would-be developers onto the new system. Help files, the platform software development kit (SDK), and even a developers’ community can be found at Google’s Android website, https://www.wendangku.net/doc/1e12083178.html,/android. This site should be your starting point, and I highly encourage you to visit the site. 二.基本概况及发展趋势 目前,安卓应用程序发展十分迅速,各种各样的应用程序都能在安卓市场中找到,日程管理软件业随处可以见。其中,日程管家、日程表、日程备忘以及课程表在安卓市场上都有相当大的使用量,甚至很多知名企业也参与开发此类应用程序,如影响力比较大360公司开发的 360 课程表。此类软件在网上都有相当多的好评,可见,其对人们生活的带来了相当大的便捷。 虽然,该类应用有很多,但没有专门针对大学生开发的具有明显特色的一款软件。在大学生中,沉重的学习压力,凌乱的作息安排,上课地点的不断更换,临时课程的添加,让我们没有多余的心思去记那繁琐的教室、课程。因此,对于日程管理系统的开发和应用的改善就显得尤为重要。因此设计一个多元化,功能全面的日程管理系统尤为重要。日程管理系统是否实用直接影响其的使用量,通常,日程可分为日程安排、日历、课程表三大类。日程安排,大学生可能用的不多,但日后成为上班族就会用的频繁。日历,在生活中也是不可或缺的。课程表,适应于对学生做学习计划及上课课程提醒,便于学生合理利用时间。本项目旨在设计一个将日程安排,日历和课程表完美结合的日程管理系统,大大提高用户交互性及系统完善性。 三.课题要求及设计方案 3.1 设计主要内容:

相关文档
相关文档 最新文档