android 代码 日历 重复事件设置,日历重复/重复事件 - 最佳存储方法
对于所有对此感兴趣的人,现在您只需复制并粘贴即可在几分钟内开始使用。我尽可能地在评论中接受了建议。如果我遗失了某些东西,请告诉我。
“复杂版本”:
事件
+ ---------- + ---------------- +
| ID | NAME |
+ ---------- + ---------------- +
| 1 | 示例事件1 |
| 2 | 第二次活动|
| 3 | 第三次活动|
+ ---------- + ---------------- +
events_meta
+ ---- + ---------- + -------------- + ------------------ + ------------- + -------------- + ------------ + ------- ------ + ---------------- +
| ID | event_id | repeat_start | repeat_interval | repeat_year | repeat_month | repeat_day | repeat_week | repeat_weekday |
+ ---- + ---------- + -------------- + ------------------ + ------------- + -------------- + ------------ + ------- ------ + ---------------- +
| 1 | 1 | 2014-07-04 | 7 | NULL | NULL | NULL | NULL | NULL |
| 2 | 2 | 2014-06-26 | NULL | 2014 | * | * | 2 | 5 |
| 3 | 3 | 2014-07-04 | NULL | * | * | * | * | 5 |
+ ---- + ---------- + -------------- + ------------------ + ------------- + -------------- + ------------ + ------- ------ + ---------------- +
SQL代码:
CREATE TABLE IF NOT EXISTS `events` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
--
-- Dumping data for table `events`
--
INSERT INTO `events` (`ID`, `NAME`) VALUES
(1, 'Sample event'),
(2, 'Another event'),
(3, 'Third event...');
CREATE TABLE IF NOT EXISTS `events_meta` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`event_id` int(11) NOT NULL,
`repeat_start` date NOT NULL,
`repeat_interval` varchar(255) NOT NULL,
`repeat_year` varchar(255) NOT NULL,
`repeat_month` varchar(255) NOT NULL,
`repeat_day` varchar(255) NOT NULL,
`repeat_week` varchar(255) NOT NULL,
`repeat_weekday` varchar(255) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
--
-- Dumping data for table `events_meta`
--
INSERT INTO `events_meta` (`ID`, `event_id`, `repeat_start`, `repeat_interval`, `repeat_year`, `repeat_month`, `repeat_day`, `repeat_week`, `repeat_weekday`) VALUES
(1, 1, '2014-07-04', '7', 'NULL', 'NULL', 'NULL', 'NULL', 'NULL'),
(2, 2, '2014-06-26', 'NULL', '2014', '*', '*', '2', '5'),
(3, 3, '2014-07-04', 'NULL', '*', '*', '*', '*', '1');
也可用作MySQL导出(便于访问)
PHP示例代码index.php:
require 'connect.php';
$now = strtotime("yesterday");
$pushToFirst = -11;
for($i = $pushToFirst; $i < $pushToFirst+30; $i++)
{
$now = strtotime("+".$i." day");
$year = date("Y", $now);
$month = date("m", $now);
$day = date("d", $now);
$nowString = $year . "-" . $month . "-" . $day;
$week = (int) ((date('d', $now) - 1) / 7) + 1;
$weekday = date("N", $now);
echo $nowString . "
";
echo $week . " " . $weekday . "
";
$sql = "SELECT EV.*
FROM `events` EV
RIGHT JOIN `events_meta` EM1 ON EM1.`event_id` = EV.`id`
WHERE ( DATEDIFF( '$nowString', repeat_start ) % repeat_interval = 0 )
OR (
(repeat_year = $year OR repeat_year = '*' )
AND
(repeat_month = $month OR repeat_month = '*' )
AND
(repeat_day = $day OR repeat_day = '*' )
AND
(repeat_week = $week OR repeat_week = '*' )
AND
(repeat_weekday = $weekday OR repeat_weekday = '*' )
AND repeat_start <= DATE('$nowString')
)";
foreach ($dbConnect->query($sql) as $row) {
print $row['ID'] . "\t";
print $row['NAME'] . "
";
}
echo "
";
}
?>
PHP示例代码connect.php:
// ----------------------------------------------------------------------------------------------------
// Connecting to database
// ----------------------------------------------------------------------------------------------------
// Database variables
$username = "";
$password = "";
$hostname = "";
$database = "";
// Try to connect to database and set charset to UTF8
try {
$dbConnect = new PDO("mysql:host=$hostname;dbname=$database;charset=utf8", $username, $password);
$dbConnect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
// ----------------------------------------------------------------------------------------------------
// / Connecting to database
// ----------------------------------------------------------------------------------------------------
?>
此处还提供了php代码(为了更好的可读性):
index.php
和
connect.php
现在设置它应该需要几分钟。不是几个小时 :)
android 代码 日历 重复事件设置,日历重复/重复事件 - 最佳存储方法相关推荐
- 红米1s开机android,红米1s恢复出厂设置开不了机的解决方法【图文】
国内的手机发展速度大家已经感受到了吧!假如时间停留在五年前,我们国内的手机市场出现的一些手机品牌不是诺基亚.就是摩托罗拉,这些牌子都是外国手机.而我们再看看现在,市场上的手机品牌国产手机就占了一大半. ...
- XX健康:预约管理-预约设置日历插件文件简单下载Excel文件解析Excel表数据批量导入
1. 需求分析 前面我们已经完成了检查项管理.检查组管理.套餐管理等.接下来我们需要进行预约设置,其实就是设置每一天的体检预约最大数量.客户可以通过微信端在线预约,在线预约时需要选择体检的时间,如果客 ...
- POI报表下载与上传 日历展示预约设置信息
POI报表下载与上传 日历展示预约设置信息 第5章 预约管理-预约设置 1. 需求分析 2. Apache POI 2.1 POI介绍 2.2 入门案例 2.2.1 从Excel文件读取数据 2.2. ...
- Vowifi 设置在Android代码位置
Vowifi 设置通常可以在 Android 系统设置中的 "网络和 Internet" 或 "连接" 菜单中找到. 在 Android 代码中,Vowifi ...
- 7 赫斯曼网管软件industrial hivision告警事件设置
文章目录 前言 一.事件转发 1.Forward events to syslog server 2.Event Type 3.新建日志服务器设备 二.事件操作 1.告警提示框设置 2.告警音设置 3 ...
- android代码编写,如何正确编写Android代码
你直接使用Android代码来构造和创建应用程序用户界面,下面文章进行详细的对Android代码进行详细的说明描述. 在你的Android代码中使用这个类作为你个比较快捷的方法去访问你的工程能够中的资 ...
- Android系统日历读取各厂商农历年重复event
农历按年重复事件读取 日历业务,发现android手机设置按年重复事件,各个厂商都支持按农历年重复,比如发生时间是每月正月十五,但读取出来,日期都是设定的公历日期,在第二年就肯定错了. 比如用户添加一 ...
- 【Android】通知准时送达之日历事件
索引 案例 写在前面 为什么要添加日历事件,有哪些好处 添加日历事件方案 相关数据表 添加权限 日历账户 日历事件 扩展 案例 场景:商城会在10点发起对一件商品的秒杀,要求客户端在10点之前五分钟通 ...
- Android添加系统日历提醒,并从项目日历查看添加的事件<日历 111>(带效果图)
前言 今天写一个从代码中添加系统日历提醒的功能,(分两篇,一个添加到系统日历,一个从手机上能直接查看) 一.话不多说,先看效果 这个是项目中的日历以及日历事件展示 这个是系统日历以及事件展示 可以看的 ...
最新文章
- Android开发之Buidler模式初探结合AlertDialog.Builder解说
- [产品设计]为什么目前的运动手表的产品设计是错的?
- Docker:容器的四种网络类型 [十三]
- Array的sort() 方法
- Visual C++——定时刷新重绘窗口[WM_PAINT消息]解决方案
- MIT 6.031 Software Construction Lab1-Part2-Personal-Art
- python 基础 list和 tuple dict和set
- HashMap中的hash算法的几个思考
- [工作积累] error: bad class file magic (cafebabe) or version (0033.0000)
- 1450. Russian Pipelines(spfa)
- .php对收录有影响吗,你知道吗?网站收录其实对网站排名影响并不大
- 手机输入法带拼音声调_最好用的输入法,百度输入法带你体验更智能的拼音输入法...
- 华硕主板如何设置开机自启_华硕主板怎么设置自动开机,华硕主板设置通电开机-...
- 系统学习语义分割文章推荐以及顺序
- ie浏览器html播放器,ie浏览器播放不了网页视频
- 反向代理服务器nginx
- Linux Mint系统常用软件安装
- mbp touchbar设置_新款 MBP 配备 Touch Bar 如何关机?
- 【渝粤题库】国家开放大学2021春2721乡镇行政管理题目
- C语言求一个整数各个位数之和