Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Date.numberOfDaysInYear #552

Open
nuomi1 opened this issue Aug 25, 2018 · 2 comments
Open

Add Date.numberOfDaysInYear #552

nuomi1 opened this issue Aug 25, 2018 · 2 comments

Comments

@nuomi1
Copy link

nuomi1 commented Aug 25, 2018

Please fill out this template when filing an issue.

All comment lines beginning with an > instruct you with what info we expect. You can delete those lines once you've filled in the info.

[x] I've read, understood, and done my best to follow the Contributing guidelines before opening this issue.

What did you do?

Provide a compute property.

What did you expect to happen?

Get days in year for Date.

What happened instead?

Please replace this with of what happened instead.

SwifterSwift Environment

  • SwifterSwift version: 4.4.0
  • Xcode version: 9.4.1
  • macOS version running Xcode: 10.13.6
  • Swift version: 4.1.2
  • Platform(s) running SwifterSwift: macOS

Demo Project

extension Date {
    var numberOfDaysInYear: Int {
        return Calendar.current.ordinality(of: .day, in: .year, for: self)!
    }
}
let now = Date()

dump(now)
print(now.numberOfDaysInYear)
▿ 2018-08-25 08:43:25 +0000
  - timeIntervalSinceReferenceDate: 556879405.01351404
237
@spacelatte
Copy link
Collaborator

spacelatte commented Oct 10, 2018

imho: name should be numberOfDaysLeftInYear or something like it.
because number-of-days-in-year is either 365 or 366 depending on leap-year

@guykogus
Copy link
Contributor

Actually the code example is dayInYear. To get numberOfDaysLeftInYear it would be calculated as such:

extension Date {
    var dayInYear: Int {
        return Calendar.current.ordinality(of: .day, in: .year, for: self)!
    }

    var numberOfDaysInYear: Int {
        return Calendar.current.range(of: .day, in: .year, for: self)!.upperBound - 1
    }

    var numberOfDaysLeftInYear: Int {
        return numberOfDaysInYear - dayInYear
    }
}

Date().numberOfDaysLeftInYear // 81 (for Oct 11, 2018)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants