html制作日历备忘录,原生JS代码制作带记事备忘功能的双月份显示效果的日历

原生JS写的日历月历 - demo by js.alixixi.com

window.onload = function(){

function $(id){return typeof id === "string" ? document.getElementById(id) : id;}

function lightBoxShow(title,str)

{

var oWin = $("win");

var oLay = $("overlay");

$("otitlestr").innerHTML = title;

$("showstr").innerHTML = str;

oLay.style.display = "block";

oWin.style.display = "block";

$("close").onclick = function ()

{

oLay.style.display = "none";

oWin.style.display = "none"

}

}

var newDate = document.getElementById("newDate");

var nowDate = document.getElementById("nowDate");

var nextDate = document.getElementById("nextDate");

var nDate = new Date();

if(nDate.getMonth()+1==12){

viewDate(nowDate,nDate.getFullYear(),nDate.getMonth()+1,true);

viewDate(nextDate,nDate.getFullYear()+1,1);

}else{

viewDate(nowDate,nDate.getFullYear(),nDate.getMonth()+1,true);

viewDate(nextDate,nDate.getFullYear(),nDate.getMonth()+2);

}

showBtn();

function viewDate(obj,year,month,bBtn){

var nDate = new Date();

var dayNum = 0;

if(!obj.bBtn){

obj.Header = document.createElement("div");

obj.Header.className = "Header";

obj.appendChild(obj.Header);

var Weeks = document.createElement("div");

Weeks.className = "Weeks";

obj.appendChild(Weeks);

var weeksArr = ['SUN','MON','TUE','WEB','THU','FRI','SAT'];

for(var i=0;i<7;i++){

var nSpan = document.createElement("span");

nSpan.innerHTML = weeksArr[i];

if(i==0 || i==6){

nSpan.style.color = "red";

}

Weeks.appendChild(nSpan);

}

var nUl = document.createElement("ul");

for(var i=0;i<42;i++){

var nLi = document.createElement("li");

nUl.appendChild(nLi);

}

obj.appendChild(nUl);

obj.bBtn = true;

}

obj.Header.innerHTML = ( bBtn ? '

'+(month-1)+'
' : '
'+(month+1)+'
')+'
'+year+'- '+month+'
';

var aLi = obj.getElementsByTagName("li");

for(var i=0;i

aLi[i].innerHTML = "";

aLi[i].style.background = "#f5f5f5";

aLi[i].style.color = "#999";

}

if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){

dayNum = 31;

}

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

dayNum = 30;

}

else if(month==2 && isLeapYear(year)){

dayNum = 29;

}

else{

dayNum = 28;

}

nDate.setFullYear(year);

nDate.setMonth(month-1);

nDate.setDate(1);

function Today(){

var tDate = new Date();

var tEm = aLi[i].parentNode.parentNode.getElementsByTagName("em");

var tMonth = parseInt(tEm[2].innerHTML);

var tYear = parseInt(tEm[1].innerHTML);

if(aLi[i].innerHTML == tDate.getDate() && tYear == tDate.getFullYear() && tMonth == tDate.getMonth()+1){

aLi[i].style.color = "#000";

aLi[i].style.background = "#e6dcda";

}

}

switch(nDate.getDay()){

case 0:

for(var i=0;i

aLi[i].innerHTML = i+1;

Today();

}

break;

case 1:

for(var i=0;i

aLi[i+1].innerHTML = i+1;

Today();

}

break;

case 2:

for(var i=0;i

aLi[i+2].innerHTML = i+1;

Today();

}

break;

case 3:

for(var i=0;i

aLi[i+3].innerHTML = i+1;

Today();

}

break;

case 4:

for(var i=0;i

aLi[i+4].innerHTML = i+1;

Today();

}

break;

case 5:

for(var i=0;i

aLi[i+5].innerHTML = i+1;

Today();

}

break;

case 6:

for(var i=0;i

aLi[i+6].innerHTML = i+1;

Today();

}

break;

}

if(month==1 && bBtn){

obj.Header.getElementsByTagName('em')[0].innerHTML = 12;

}

else if(month==12 && !bBtn){

obj.Header.getElementsByTagName('em')[0].innerHTML = 1;

}

}

function isLeapYear(year){

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

return true;

}

else{

if(year%400==0){

return true;

}

else{

return false;

}

}

}

function showBtn(){

var nowEm = nowDate.getElementsByTagName("em");

var nextEm = nextDate.getElementsByTagName("em");

var leftMonth = parseInt(nowEm[0].innerHTML);

var leftYear = parseInt(nowEm[1].innerHTML);

var rightMonth = parseInt(nextEm[0].innerHTML);

var rightYear = parseInt(nextEm[1].innerHTML);

nowEm[0].parentNode.onclick = function(){

if(leftMonth == 12){

viewDate(nowDate,leftYear-1,leftMonth,true);

viewDate(nextDate,leftYear,1);

}

else{

viewDate(nowDate,leftYear,leftMonth,true);

viewDate(nextDate,leftYear,leftMonth+1);

}

showBtn();

};

nextEm[0].parentNode.onclick = function(){

if(rightMonth == 1){

viewDate(nowDate,rightYear,12,true);

viewDate(nextDate,rightYear+1,rightMonth);

}

else{

viewDate(nowDate,rightYear,rightMonth-1,true);

viewDate(nextDate,rightYear,rightMonth);

}

showBtn();

};

}

function nowDay(){

var tLi = newDate.getElementsByTagName("li");

var tDate = new Date();

for(var i=0;i

tLi[i].onmouseover = function(){

if(this.innerHTML != ""){

this.style.color = "#000";

this.style.background = "#e6dcda";

}

}

tLi[i].onmouseout = function(){

if(this.innerHTML != ""){

this.style.color = "#999";

this.style.background = "#f5f5f5";

}

}

tLi[i].onclick = function(){

var tEm = this.parentNode.parentNode.getElementsByTagName("em");

var tMonth = parseInt(tEm[2].innerHTML);

var tYear = parseInt(tEm[1].innerHTML);

if(this.innerHTML!=""){

lightBoxShow(tYear+"-"+tMonth+"-"+this.innerHTML+" Message","None");

//alert(tYear+"-"+tMonth+"-"+this.innerHTML);

}

}

}

for(var j=tLi.length/2;j

if(tLi[j].innerHTML == tDate.getDate()){

tLi[j].style.color = "#000";

tLi[j].style.background = "#e6dcda";

}

}

}

nowDay();

}

×
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Android 日历备忘录代码示例: 1. 在布局文件中添加一个日历视图和一个列表视图: ```xml <CalendarView android:id="@+id/calendarView" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 2. 在活动中初始化日历视图和列表视图,并将它们连接起来: ```java public class MainActivity extends AppCompatActivity { private CalendarView mCalendarView; private ListView mListView; private EventListAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mCalendarView = findViewById(R.id.calendarView); mListView = findViewById(R.id.listView); mAdapter = new EventListAdapter(this); mListView.setAdapter(mAdapter); mCalendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { @Override public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) { List<Event> events = getEventsForDate(year, month, dayOfMonth); mAdapter.setEvents(events); } }); } private List<Event> getEventsForDate(int year, int month, int dayOfMonth) { // 查询数据库或其他存储位置以获取给定日期的事件列表 // 这里返回一个假的事件列表 List<Event> events = new ArrayList<>(); events.add(new Event("Meeting with client", "10:00 AM", "12:00 PM")); events.add(new Event("Lunch with coworkers", "12:30 PM", "1:30 PM")); events.add(new Event("Team meeting", "2:00 PM", "3:00 PM")); return events; } } ``` 3. 创建一个事件类,以存储事件的详细信息: ```java public class Event { private String mName; private String mStartTime; private String mEndTime; public Event(String name, String startTime, String endTime) { mName = name; mStartTime = startTime; mEndTime = endTime; } public String getName() { return mName; } public String getStartTime() { return mStartTime; } public String getEndTime() { return mEndTime; } } ``` 4. 创建一个事件列表适配器,以在列表视图中显示事件: ```java public class EventListAdapter extends BaseAdapter { private List<Event> mEvents; private Context mContext; public EventListAdapter(Context context) { mEvents = new ArrayList<>(); mContext = context; } public void setEvents(List<Event> events) { mEvents = events; notifyDataSetChanged(); } @Override public int getCount() { return mEvents.size(); } @Override public Object getItem(int position) { return mEvents.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(mContext).inflate(R.layout.event_list_item, parent, false); } Event event = mEvents.get(position); TextView nameTextView = convertView.findViewById(R.id.nameTextView); TextView timeTextView = convertView.findViewById(R.id.timeTextView); nameTextView.setText(event.getName()); timeTextView.setText(event.getStartTime() + " - " + event.getEndTime()); return convertView; } } ``` 5. 创建一个事件列表项布局文件,以定义每个事件在列表视图中的外观: ```xml <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/nameTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/timeTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="14sp" /> </LinearLayout> ``` 这样,您就可以在 Android 应用中创建一个简单的日历备忘录了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值