
由于是用uniapp写的,所以在网页上也可以用,先上预览图
主要功能:
css样式原理如下,红色框为用户视图。拖拉的时候改变left数值就可以了。
小tips:
当宽度为自适应,不知道具体数值,而需要用宽度计算时,可以用 padding-bottom 。这样我们就可以一行放下七个圆形了。
所有css如下:
数字偏上是预留位置给当天的状态显示。
功能与解释都在注释中写明。
好了,基本上就这些。感觉js写的有点笨。如果有不懂的 或者 有更好的方法请在评论区告诉我,谢谢!
<van-calendar
poppable="{{ false }}"
show-confirm="{{ false }}"
formatter="{{ formatter }}"
class="calendar"
show-title="{{ false }}"
show-subtitle="{{ false }}"
>
</van-calendar>
onLoad(options){
thisCalendarShow();
}
CalendarShow() {
let _this=this;
var data = {};
dataformatter = thisdayFormatter;
// 渲染日历
thissetData({formatter: function (day) {
let month = daydategetMonth() + 1;
let date = daydategetDate();
for(let i of list){
if(month ===imonth){
if (date === iday) {
daybottomInfo = '余票'+istock+'张';
}
}
};
return day;
} })
},
也不知道你具体需求是什么,以前改过一个日历程序,一共四个java类,放在同一个包里。经测试可以运行。
//Startjava
import javaawt;
import javaxswing;
class Start{
public static void main(String [] args){
DateFrame frame=new DateFrame();
framesetLocationRelativeTo(frame);
framesetResizable(false);
framesetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
framesetVisible(true);
}
}
//DateInfojava
import javautil;
public class DateInfo{
private int mYear, mMonth;
private int mDayOfMonth, mFristWeek;
public DateInfo(int year, int month) throws DateException{
mYear = year;
if (month < 0 || month > 12){
throw (new DateException());
}
mMonth = month;
mDayOfMonth = getDayOfMonth(mYear, mMonth);
mFristWeek = getFristWeek(mYear, mMonth);
}
private int getDayOfMonth(int year, int month){
int[][] ary = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
return (ary[isLeapYear(year)][month]);
}
private int isLeapYear(int year){
if (year % 4 == 0 && year % 100 != 0 ||year % 400 == 0){
return (1);
}
else{
return (0);
}
}
private int getFristWeek(int year, int month){
javautilCalendar cal = CalendargetInstance();
calset(year, month - 1, 1);
return (calget(CalendarDAY_OF_WEEK) - 1);
}
public String toString(){
String str;
str = "\t\t" + mYear + "年" + mMonth + "月\n";
str += "日\t一\t二\t三\t四\t五\t六\n";
int i;
for (i = 1; i <= mFristWeek; i++){
str += " \t";
}
for (int j = 1; j <= mDayOfMonth; j++, i++){
str +=j+"\t" ;
if (i % 7 == 0){
str += "\n";
}
}
return (str);
}
}
//DateFramejava
import javaawt;
import javaawtevent;
import javaxswing;
import javautilCalendar;
class DateFrame extends JFrame implements Runnable{
Calendar date=CalendargetInstance();
String[] str={"1","2","3","4","5","6","7","8","9","10","11","12"};
JLabel lblYear=new JLabel("年 ");
JLabel lblMonth=new JLabel("月 ");
JLabel lblDate=new JLabel("现在的时间是:");
JLabel lblShowDate=new JLabel();
// javaxswingJTextField trxt =new JTextField(10);
// trxtsetHorizontalAlignment(JTextFieldRIGHT); //设置文本从右边输入
JComboBox cboMonth=new JComboBox(str);
JComboBox cboYear=new JComboBox();
JTextArea txaShow=new JTextArea();
JPanel pnlNorth=new JPanel();
JPanel pnlSOUTH=new JPanel();
JButton btnShow=new JButton("显示");
JButton btnClose=new JButton("关闭");
JScrollPane jsp=new JScrollPane(txaShow);
Container c=thisgetContentPane();
public DateFrame(){
Thread thread=new Thread(this);
threadstart();
thissetTitle("玩玩日历拉!!!");
thissetSize(300,260);
for (int i = 1990; i<=2025; i++) {
cboYearaddItem(""+i);
}
cboYearsetSelectedItem(""+(dateget(CalendarYEAR)));
cboMonthsetSelectedItem(""+(dateget(CalendarMONTH)+1));
pnlNorthadd(cboYear);
txaShowsetTabSize(4); //设置tab键的距离
txaShowsetForeground(ColorGREEN);
pnlNorthadd(lblYear);
pnlNorthadd(cboMonth);
pnlNorthadd(lblMonth);
pnlNorthadd(lblDate);
pnlNorthadd(lblShowDate);
cadd(pnlNorth,BorderLayoutNORTH);
cadd(jsp);
pnlSOUTHadd(btnShow);
pnlSOUTHadd(btnClose);
cadd(pnlSOUTH,BorderLayoutSOUTH);
btnShowaddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int year=IntegerparseInt((String)cboYeargetSelectedItem());
int month=IntegerparseInt((String)cboMonthgetSelectedItem());
try {
DateInfo date=new DateInfo(year,month);
txaShowsetText(""+date);
}
catch (DateException ex) {
exprintStackTrace();
}
}
});
btnCloseaddActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Systemexit(0);
}
});
}
public void run(){
try {
while(true){
Threadsleep(1000);
int hour=dateget(CalendarHOUR);
int minute=dateget(CalendarMINUTE);
int second=dateget(CalendarSECOND);
String str=hour+":"+minute+":"+second;
lblShowDatesetText(str);
//thisrepaint();
}
}
catch (Exception ex) {
exprintStackTrace();
}
}
}
//DateExceptionjava
public class DateException extends Exception{
public DateException(){
super("日期数据不合法");
}
}
因为日历是系统自带的,所以读写它一定要申请权限,也就是在AndroidManifestxml加如下两行代码(一个读一个写):
<uses-permission android:name="androidpermissionREAD_CALENDAR"/>
<uses-permission android:name="androidpermissionWRITE_CALENDAR"/>
Android中日历用了三个URL,分别是日历用户的URL,事件的URL,事件提醒URL,三个URL在Android21之前是如下的样子:
calanderURL = "content://calendar/calendars";
calanderEventURL = "content://calendar/events";
calanderRemiderURL= "content://calendar/reminders";
但是在Android22版本以后,三个URL有了改变,变成如下的样子:
calanderURL = "content://comandroidcalendar/calendars";
calanderEventURL = "content://comandroidcalendar/events";
calanderRemiderURL = "content://comandroidcalendar/reminders";
简单的Demo,按照我的步骤一步一步的来:
第一步:新建一个Android工程命名为CalendarDemo
第二步:修改mainxml布局文件,增加了三个按钮,代码如下:
<xml version="10" encoding="utf-8">
<LinearLayout xmlns:android=">
在桌面上双指捏合,进入桌面编辑状态。
2、点击窗口小工具,然后可以向左滑动查看所有小工具。
3、部分小工具(如天气)会有多种样式,点击该图标可以展开所有的样式。向右滑动展开的样式,可以收拢。
4、点击需要的小工具图标,即可将其添加到当前屏幕。如果当前屏幕没有空间,您可以长按并拖动该图标,将其添加到其它屏幕。
以上就是关于uniapp 「小程序」考勤系统的日历组件全部的内容,包括:uniapp 「小程序」考勤系统的日历组件、微信小程序 vant日历自定义文案、求Java 日历的小程序的源代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)