1.0.0
This commit is contained in:
commit
f076ae3790
82 changed files with 7250 additions and 0 deletions
70
lib/src/model/date.dart
Normal file
70
lib/src/model/date.dart
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
/// A gregorian calendar date generated by
|
||||
/// OpenAPI generator to differentiate
|
||||
/// between [DateTime] and [Date] formats.
|
||||
class Date implements Comparable<Date> {
|
||||
final int year;
|
||||
|
||||
/// January is 1.
|
||||
final int month;
|
||||
|
||||
/// First day is 1.
|
||||
final int day;
|
||||
|
||||
Date(this.year, this.month, this.day);
|
||||
|
||||
/// The current date
|
||||
static Date now({bool utc = false}) {
|
||||
var now = DateTime.now();
|
||||
if (utc) {
|
||||
now = now.toUtc();
|
||||
}
|
||||
return now.toDate();
|
||||
}
|
||||
|
||||
/// Convert to a [DateTime].
|
||||
DateTime toDateTime({bool utc = false}) {
|
||||
if (utc) {
|
||||
return DateTime.utc(year, month, day);
|
||||
} else {
|
||||
return DateTime(year, month, day);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
int compareTo(Date other) {
|
||||
int d = year.compareTo(other.year);
|
||||
if (d != 0) {
|
||||
return d;
|
||||
}
|
||||
d = month.compareTo(other.month);
|
||||
if (d != 0) {
|
||||
return d;
|
||||
}
|
||||
return day.compareTo(other.day);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
identical(this, other) ||
|
||||
other is Date &&
|
||||
runtimeType == other.runtimeType &&
|
||||
year == other.year &&
|
||||
month == other.month &&
|
||||
day == other.day;
|
||||
|
||||
@override
|
||||
int get hashCode => year.hashCode ^ month.hashCode ^ day.hashCode;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
final yyyy = year.toString();
|
||||
final mm = month.toString().padLeft(2, '0');
|
||||
final dd = day.toString().padLeft(2, '0');
|
||||
|
||||
return '$yyyy-$mm-$dd';
|
||||
}
|
||||
}
|
||||
|
||||
extension DateTimeToDate on DateTime {
|
||||
Date toDate() => Date(year, month, day);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue