1
0
mirror of https://github.com/rlanvin/php-rrule.git synced 2025-02-20 09:54:16 +01:00

Updating CHANGELOG

This commit is contained in:
rlanvin 2016-03-23 12:07:50 +02:00
parent 76e6698b51
commit 85d349f438
2 changed files with 115 additions and 0 deletions

View File

@ -2,6 +2,14 @@
## [Unreleased]
### Added
- New class `RRule\RSet` (recurrence set) that can combine multiple RRULE, EXRULE, RDATE and EXDATE. [#7](https://github.com/rlanvin/php-rrule/issues/7)
- New interface `RRule\RRuleInterface` to unify `RRule` and `RSet`
- New methods: `isFinite()`, `isInfinite()`
### Fixed
- Fix bug preventing the iteration of multiple instances of RRule at the same time
## [1.0.1] - 2016-03-11

107
test_set.php Executable file
View File

@ -0,0 +1,107 @@
<?php
require __DIR__.'/vendor/autoload.php';
$rset = new RRule\RSet();
// $rset->addRdate();
$rset->addRRule(new RRule\RRule([
'freq' => 'daily',
'interval' => 3,
'count' => 5
]));
$rset->addRRule(new RRule\RRule([
'freq' => 'daily',
'interval' => 2,
'count' => 5
]));
$rset->addRRule(new RRule\RRule([
'freq' => 'weekly',
'count' => 5
]));
$rset->addDate(new DateTime('1983-12-20'));
$rset->addExdate(new DateTime());
$rset->addExrule(new RRule\RRule([
'freq' => 'daily',
'count' => 5
]));
// $rrule = new RRule\RRule([
// 'freq' => 'daily',
// 'interval' => 2,
// 'count' => 5
// ]);
// foreach ( $rrule as $occurrence ) {
// var_dump($occurrence->format('Y-m-d H:i:s'));
// sleep(2);
// }
// $dt = new DateTime();
// var_dump($dt->format('Y-m-d H:i:s'));
// sleep(2);
// var_dump($dt->format('Y-m-d H:i:s'));
// die();
// $rule = new RRule\RRule([
// 'freq' => 'weekly',
// 'count' => 5
// ]);
// var_dump($rule->rfcString());
// var_dump($rule->humanReadable());
// var_dump($rule->getOccurrences());
// die();
// foreach ( $rset as $date ) {
// var_dump($date);
// fgets(STDIN);
// }
// foreach ( $rset as $date ) {
// echo $date->format('Y-m-d'),"\n";
// }
echo "Should be 1983-12-20 00:00:00.000000...\n";
var_dump($rset[0]);
echo "Should be 2016-03-27 23:11:00.000000...\n";
var_dump($rset[1]);
die();
// while ( ($date = $rset->iterate()) !== null ) {
foreach ( $rset as $date ) {
echo "Calculated date\n";
var_dump($date);
fgets(STDIN);
}
echo "Done\n";
// // working example
// $dates1 = [new DateTime('2016-01-15'), new DateTime('2016-03-15')];
// $dates2 = [new DateTime('2016-01-10'), new DateTime('2016-02-10'), new DateTime('2016-05-10')];
// $dates3 = new RRule\RRule([
// 'freq' => 'daily',
// 'count' => 5
// ]);
// $iterator = new MultipleIterator(MultipleIterator::MIT_NEED_ANY);
// $iterator->attachIterator(new ArrayIterator($dates1));
// $iterator->attachIterator(new ArrayIterator($dates2));
// $iterator->attachIterator($dates3);
// $rlist = new SplMinHeap();
// $iterator->rewind();
// do {
// foreach ( $iterator->current() as $date ) {
// if ( $date !== null ) {
// $rlist->insert($date);
// }
// }
// $iterator->next();
// $date = $rlist->top();
// var_dump($date);
// $rlist->extract();
// } while ( ! $rlist->isEmpty() );