uniapp 「小程序」考勤系统的日历组件

uniapp 「小程序」考勤系统的日历组件,第1张

由于是用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 日历的小程序的源代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9398055.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存