এই কত দিন আগে ছিল?


9

এই কত দিন আগে ছিল?

নিয়ম

  • প্রতিটি জমা অবশ্যই একটি সম্পূর্ণ প্রোগ্রাম হতে হবে।
  • প্রোগ্রামটি অবশ্যই ফর্মটিতে দুটি কমা-বিচ্ছিন্ন তারিখ হিসাবে ইনপুট নেবে YYYY-MM-DDএবং দ্বিতীয় তারিখ থেকে এসটিডিআউটে চলে গেছে এমন দিনগুলির সংখ্যা মুদ্রণ করবে যেন আজ প্রথম তারিখ ছিল (যদি দ্বিতীয় তারিখ ভবিষ্যতে হবে, আউটপুট একটি negativeণাত্মক সংখ্যা) এবং একটি optionচ্ছিক পেছনের নতুন লাইন, এবং কিছুই নয়। ধরুন উভয় তারিখ গ্রেগরিয়ান ক্যালেন্ডারে রয়েছে।
  • প্রোগ্রামটি অবশ্যই এসটিডিআরআরকে কিছু লিখবে না।

    মনে রাখবেন যে সেখানে একজন দোভাষী থাকতে হবে যাতে জমাটি পরীক্ষা করা যায়।

  • জমা মধ্যে স্কোর করতে হয় বাইট , একটি যথাযথ মধ্যে (পূর্ব বিদ্যমান) এনকোডিং, সাধারণত (কিন্তু অগত্যা না) হল UTF-8। ফোল্ডারগুলির মতো কিছু ভাষাও স্কোর করতে কিছুটা জটিল doubt যদি সন্দেহ হয় তবে দয়া করে মেটাকে জিজ্ঞাসা করুন ।
  • এই , তাই সংক্ষিপ্ততম কোড জিতেছে

    উদাহরণ

ইনপুট:

2015-12-03,2015-12-01

আউটপুট:

2

ইনপুট:

2015-12-03,2014-12-01

আউটপুট:

367

ইনপুট:

2015-12-03,2013-12-03

আউটপুট:

730

স্নিপেট

এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে) ক) লিডারবোর্ড এবং খ) প্রতি ভাষা প্রতি বিজয়ীদের তালিকা হিসাবে।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি আলাদাভাবে দোভাষী পতাকা পেনাল্টির তালিকা করতে চান), নিশ্চিত হয়ে নিন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

## Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও তৈরি করতে পারেন যা স্নিপেটে প্রদর্শিত হবে:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes

var QUESTION_ID=65989,OVERRIDE_USER=46167;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?([\d.]+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>



1
আমাদের কি বাহ্যিক গ্রন্থাগার ব্যবহারের অনুমতি দেওয়া হচ্ছে? যেগুলি কোনও প্রদত্ত বাস্তুতন্ত্রের ক্ষেত্রে সাধারণ তবে আদর্শ স্তরের অংশ নয়? (উদাহরণস্বরূপ, প্রযুক্তিগতভাবে বাহ্যিক লাইব্রেরি হওয়া সত্ত্বেও কেউ জেডিকে'র তারিখ এপিআইগুলি ব্যবহার না করে জোদাটাইম পরিবর্তে)।
Ruslan

আমি ধরে নিয়েছি যে সমস্ত কিছু ইউটিসি ব্যবহার করে, যেহেতু আমার টাইম জোনে 2015-11-01T00: 00: 00 এবং 2015-11-02T00: 00: 00 এর মধ্যে পার্থক্য কেবল দিনের আলো সঞ্চয়ের কারণে ~ 0.96 দিন (23 ঘন্টা) ছিল। ভগ্নাংশের বৃত্তাকার সম্পর্কে আপনি কিছু উল্লেখ করেননি, তাই আপনি প্রশ্নটিতে এটি পরিষ্কার করতে চাইতে পারেন। (আমি মনে করি স্থানীয় সময় ব্যবহারের জন্য
অনেকগুলি ডেটটাইম

1
লিপ বছরের জন্য কি মামলা?
দ্য কফিকপ

@ দ্য কফিকুপ তাদের অবশ্যই পরিচালনা করতে হবে
ev3commander

উত্তর:


1

টিস্ক্রিপ্ট , 24 বাইট

((a=D.parse)×-a(y©/864e5

ব্যবহার Date.parseতারিখ বিশ্লেষণ করতে, তারপর এর পার্থক্য এবং ভাগ পেতে।

এটি অনলাইনে চেষ্টা করুন

ব্যাখ্যা এবং & অবহেলিত

((a=D.parse)(x)-a(y))/864e5

               // Implicit: x is first date
               // y is second date
(
 (a=D.parse)   // Assign Date.parse to 'a'
 (x)           // Run Date.parse with first date
 -a(y)         // Subtract Date.parse run with second date
)/864e5        // Divide by 86,400,000

13

বাশ + জিএনইউ ইউটিলিটিস, 37

tr , \\n|date -f- +%s|dc -e??-86400/p

trএকটি নতুন লাইন দিয়ে কমা প্রতিস্থাপন। dateনতুন লাইনের সাথে পৃথক হওয়া তারিখগুলি পড়ে এবং ইউনিক্সের পর্ব থেকে পাস হওয়া তারিখটি প্রতিনিধিত্ব করে যেহেতু সেকেন্ডের সংখ্যা ছাড়িয়ে যায়। এই সংখ্যাগুলি পরে dcস্ট্যাকের উপর রাখা হয় । তারপরে এটি বিয়োগের একটি সহজ বিষয় এবং ভাগ করে (24 * 60 * 60)। এই ক্ষেত্রে, dcস্ট্যাক-ভিত্তিক আরপিএন গাণিতিক মূল্যায়ন এর চেয়ে ভাল bcবা বাশ ভাল $( ), বেশিরভাগ কারণ সাব-সাবাকশন-বিভাগের পূর্বে বিভাগের কোনও বন্ধনী প্রয়োজন হয় না।

এসটিডিনের মাধ্যমে ইনপুট:

$ echo 2015-12-3,2015-12-1 | ./longago.sh
2
$ echo 2015-12-3,2014-12-1 | ./longago.sh
367
$ echo 2015-12-3,2013-12-3 | ./longago.sh
730
$ 

4

জুলিয়া, 67 বাইট

print(Int(-diff(map(i->Date(i,"y-m-d"),split(readline(),",")))[1]))

Ungolfed:

# Read a line from STDIN
r = readline()

# Split it into two character dates
s = split(r, ",")

# Convert each to a Date object
d = map(i -> Date(i, "y-m-d"), s)

# Compute the difference in dates (first-second)
f = diff(d)[1]

# Convert the Base.Date.Day object to an integer
# Negate to get second-first
i = Int(-f)

# Print to STDOUT
print(i)

পরিবর্তে -diff(d)[1]আপনি -(d...)কয়েকটি বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন । আপনি জুলিয়া সংস্করণটি কীভাবে ব্যবহার করছেন? ১.২ এ, আমাকে সুস্পষ্টভাবে আমদানি করতে হয়েছিল Datesএবং আমি কেবল দিনগুলিকে এই জাতীয় পূর্ণসংখ্যায় রূপান্তর করতে পারি না।
সাইমন শিচব

এই উত্তরটি 2015 সালে পোস্ট করা হয়েছিল, সুতরাং এটি সম্ভবত জুলিয়া 0.3 বা 0.4 সর্বশেষে ছিল।
অ্যালেক্স এ।

4

স্কালা, 166 139 120 116 92 বাইট

print(args(0).replace('-','/').split(",").map(java.util.Date.parse(_)/86400000).reduce(_-_))

ব্যবহার: scala [source filename].scala [date1],[date2]

দ্রষ্টব্য: তৃতীয় সংস্করণ (১২০ বাইট) এবং এতে একটি অবহ্রাসিত API ব্যবহার করা হয়েছে। এটি এখনও সংকলন করে এবং সূক্ষ্মভাবে কাজ করে। নোট 2: দুর্দান্ত পরামর্শের জন্য নীচে মন্তব্যকারীদের ধন্যবাদ!


যেহেতু পেছনের নতুন লাইনটি alচ্ছিক আপনি এর printপরিবর্তে ব্যবহার করতে পারেন println
মার্চ

আপনি Object A extends App{...}অংশটি সরাতে এবং এটি হিসাবে সংরক্ষণ করতে a.scalaএবং এটি দিয়ে চালাতে পারেন scala a.scala 2015-12-3,2015-12-1;)
মার্টিজন

@ মার্তিজএনআর জেনিয়াস! ধন্যবাদ !!
রুসলান

3

রুবি, 69 66 65 57 55 বাইট

a=->l{Time.gm *$F[l,3]};p (a[0]-a[3]).div 86400

কমান্ড লাইন বিকল্পের জন্য 47 বাইট + 8 বাইট। ডেন অ্যান্ডারসনকে ধন্যবাদ, 2 বাইট সংরক্ষণ

57 বাইট

p (Time.gm(*$F[0,3])-Time.gm(*$F[3,3])).div 86400

কমান্ড লাইন বিকল্পের জন্য 49 বাইট কোড + 8 বাইট। ম্যানটওয়ার্কের পরামর্শ সহ 8 বাইট সংরক্ষণ করা হয়েছে।

65 বাইট

a,b=gets.split(?,).map{|i|Time.gm *i.split(?-)};p (a-b).div 86400

66 বাইট

a,b=gets.split(?,).map{|i|Time.new *i.split(?-)};p (a-b).div 86400

69 বাইট

a,b=gets.split(',').map{|i|Time.new *i.split('-')};p (a-b).to_i/86400

এটি অনলাইনে পরীক্ষা করুন

Ungolfed

a = -> l {
  Time.gm *$F[l,3]       # Anonymous method to parse time
}
p (a[0]-a[3]).div 86400  # Subtracts two times and divides by 24*60*60

ব্যবহার:

ruby -naF[,-] -e 'a=->l{Time.gm *$F[l,3]};p (a[0]-a[3]).div 86400' <<< '2015-12-3,2013-12-3'

=> 730

তিনটি ছোট অক্ষর: ','?,, '-'?-, to_i/div
manatwork

কিছু কমান্ড লাইন বিকল্প ব্যবহার করা এটিকে আরও হ্রাস করতে পারে: ruby -naF[,-] -e 'p (Time.new(*$F[0,3])-Time.new(*$F[3,3])).div 86400' <<< '2015-10-11,2015-07-11'59 টি অক্ষর হিসাবে এটি গণনা করি is
manatwork

@ মান্যাটওয়ার্ক নিশ্চিত না যে এটি অনুমোদিত কিনা।
ভাসু আদারি

নিয়মটি হ'ল কোডটি পাস করার জন্য ন্যূনতম প্রয়োজনীয়তাটি (রুবির ক্ষেত্রে -e) বিনামূল্যে, অন্য সমস্ত কিছু গণনাতে অন্তর্ভুক্ত করতে হবে। ঠিক কী তা নিয়ে আলাদা আলাদা মতামত রয়েছে অন্য সব কিছু। উদাহরণস্বরূপ কিছু সদস্য বিকল্প বিভাজক স্থান অক্ষর এবং পরামিতি মানগুলির কোট অন্তর্ভুক্ত করে। আমার দৃষ্টিতে কেবল এটিই গণনা করা উচিত যা আসলে দোভাষীকে দেওয়া হয়, শেল সিনট্যাক্স দ্বারা প্রয়োজনীয় অতিরিক্ত অক্ষর নয়। তবে বিকল্পগুলির ব্যবহারকে অস্বীকার করার জন্য উত্থাপিত কোনও ভয়েস মনে করতে পারে না।
manatwork

2
প্রায় উল্লেখ করার মতো নয়, তবে আপনি পুনরাবৃত্ত কোডটি একটি প্রোকে রূপান্তর করে একটি বাইট শেভ করতে পারেন:t=->l{Time.gm(*$F[l,3])};p (t[0]-t[3]).div 86400
অ্যালেক্সিস অ্যান্ডারসন

2

জাপট , 41 বাইট

A=K$.parse)(($B=Uq',  g0)-$A($Bg1))/864e5

এখন পর্যন্ত এটি আমি সেরা হিসাবে এটি পেতে পারি কারণ সমস্ত ভেরিয়েবল $এবং প্রথম বন্ধনী সত্যই বাইট গণনাটিকে হত্যা করে।

এটি অনলাইনে চেষ্টা করুন

ব্যাখ্যা

             // Implicit: U is set to input
A=K$.parse)  // Set variable A to date parsing function
(($B=Uq',    // Set B to input split by ,
  g0)        // Get the first date and parse
-            // Subtract...
$A(          // Parse this date...
   $Bg1      // Get's second date
))/864e5     // Divides by 86,400,000

2

ম্যাটল্যাব, 41 31 বাইট

disp(-diff(datenum(input(''))))
{'2015-12-03', '2014-12-22'}
   346  

ইনপুট অবশ্যই কমা-বিভাজিত সেল অ্যারে হতে হবে। datenumটাইপ স্ট্যাম্পের সাহায্যে ইনপুট সেলটিকে 2x1 সংখ্যার অ্যারে রূপান্তরিত করে। diffউভয়ের মধ্যে পার্থক্য গ্রহণ করে।


ওল্ড সলিউশন, 41 বাইট :

disp(-diff(datenum(strsplit(input('')))))

ইনপুট অবশ্যই কমা-বিযুক্ত স্ট্রিং হওয়া উচিত:

disp(-diff(datenum(strsplit(input('')))))
'2015-12-03, 2014-12-22'
   346

প্রোগ্রামিং এর কৌতূহলী উপায়। এটি ডাটাটাইপগুলির মধ্যে এমএটিএলবির অন্তর্নিহিত কাস্টিংয়ের কারণে কাজ করে।

আউটপুটটি strsplit(input(''))স্ট্রিংগুলির একটি ঘর। আপনি diffকোনও ঘরে কোনও ব্যবহার করতে পারবেন না , তবে ভাগ্যক্রমে, datenumকাজ করে এবং এটি সেলটি ইনপুটটিকে 2x1 সংখ্যার অ্যারে ফিরে দেয়, diffএটি ব্যবহার সম্ভব করে তোলে ।

আপনি এতে সম্পূর্ণ প্রচুর পরিমাণে সীমানা নির্ধারণ করতে পারেন strsplitতবে কমাটি ডিফল্ট। এছাড়াও, ডিফল্ট ইনপুটটি datenumফর্ম্যাটে রয়েছে yyyy-mm-dd। এই কারণে, প্রচুর স্পেসিফিকেশন যেমন: ডেটনাম (গুলি, 'ইয়াই-মিমি-ডিডি') এড়ানো হয়, পুরো বাইটগুলি সংরক্ষণ করে।

রেকর্ডটির জন্য, আমি যদি কোনও ফাংশন ব্যবহার করতে পারি তবে এটি 21 বাইট হবে:

@(s)-diff(datenum(s))

1
আমি কীভাবে ভিন্ন সম্পর্কে ভুলে যেতে পারি ... পাশাপাশি আমার জমাটিও মুছতে পারে, কারণ এটি মূলত একই, তবে পরিবর্তে ডেটনামে 2 টি কল রয়েছে।
slvrbld

1
ইনপুট ফর্ম্যাট দুর্দান্ত পছন্দ!
লুইস মেন্ডো

2

জাভাস্ক্রিপ্ট ES6, 63 বাইট

ক্রোমে পরীক্ষিত।

alert(((p=Date.parse)((a=prompt().split`,`)[0])-p(a[1]))/864e5)

প্রশ্ন থেকে কমা-
বিভক্ত

@ ev3 কম্যান্ডার হ্যাঁ, আমি ঠিক এটি ঠিক করেছি।
সুপারজেডি ২৪

2
@ সুপারজেডি ২২৪ হু ফায়ারফক্স অযৌক্ত তারিখ দেয় , যখন ক্রোম সুখে এগিয়ে যায়।
কনর ও'ব্রায়েন

5
আমি এই ক্রোম-নির্দিষ্টটিকে চিহ্নিত করব কারণ এটি কেবল ক্রোমে কাজ করে। আমি মনে করি অনুগত Date.parse-/
উপায়টি

1
বেশিরভাগ ব্রাউজারগুলিকে প্যাড করার জন্য তারিখের প্রয়োজন হয় তাই 2015-12-03এটি কাজ 2015-12-3করবে তবে কার্যকর হবে না (ক্রোম বাদে)। প্রশ্নটি বলে যে তারিখটি ফর্ম্যাটে থাকবে YYYY-MM-DDসুতরাং ইনপুটটি যদি সত্যিই অনুসরণ করে যে এটি ক্রস ব্রাউজারের সাথে সামঞ্জস্যপূর্ণ হবে তবে উদাহরণগুলি অন্যথায় বলে মনে হচ্ছে। যাইহোক, আপনি 2 বাইট সংরক্ষণ করার Date.parseপরিবর্তে ব্যবহার করতে পারেন new Date:alert((p((a=prompt(p=Date.parse).split`,`)[0])-p(a[1]))/864e5)
user81655

2

পিএইচপি, 63 64 77 বাইট

পাওয়া গেছে যে ক্লাসিক পদ্ধতিটি ওওপির চেয়ে কম:

$x=fgetcsv(STDIN);$s=strtotime;echo($s($x[0])-$s($x[1]))/86400;

থেকে কমা বিভাজিত স্ট্রিং পড়ে STDIN


সোজা এগিয়ে ওওপি ওয়ে ( 77 বাইট ):

$x=fgetcsv(STDIN);echo(new DateTime($x[0]))->diff(new DateTime($x[1]))->days;

সম্পাদনাগুলি

  • সংরক্ষিত 13 বাইট ব্যবহার করে strtotimeপরিবর্তে DateTime
  • সংরক্ষিত 1 বাইট মজুত করে strtotimeএকটি পরিবর্তনশীল হবে। ধন্যবাদ Blackhole

-3 বাইট: অ্যাসাইনমেন্টগুলি তাদের প্রথম ব্যবহারের প্রথম বন্ধনে স্থানান্তর করুন (-1 বাইট প্রতিটি) এবং আপনি এর <?=পরিবর্তে ব্যবহার করতে পারেন echo
টাইটাস


1

পিএসকিএল, 75 বাইট

(Characters৪ টি অক্ষরের কোড + 1 অক্ষর কমান্ড লাইন বিকল্প)

\prompt i
select split_part(:'i',',',1)::date-split_part(:'i',',',2)::date

psqlপোস্টগ্রিসএসকিউএল এর ইন্টারেক্টিভ টার্মিনাল। শ্রদ্ধার জন্য "প্রতিটি জমা দিতে হবে একটি সম্পূর্ণ প্রোগ্রাম To" নিয়ম করুন, কোড নিজেই ইনপুট পড়ে।

নমুনা রান:

bash-4.3$ psql -tf how-long-was-this.sql <<< '2015-12-3,2013-12-3'
      730

1

এমএটিএল, 5 বাইট

iPYOd

এটি স্টিভিগ্রিফিনের উত্তর হিসাবে একই, আমি ফলাফলটিকে অগ্রাহ্য করার পরিবর্তে flipতখন ব্যবহার করি ।diffdiff

সম্পর্কিত মতলব ফাংশন সহ সম্পূর্ণ ব্যাখ্যা:

i   %// input(''), get input
P   %// flip, flips the array
YO  %// datenum, converts date string into an integer
d   %// diff, finds the difference between dates

2
দ্রষ্টব্য: এমএটিএল কেবল 12 ডিসেম্বর প্রকাশিত হয়েছিল, এই চ্যালেঞ্জটি পোস্ট হওয়ার পরে, আমি 9 ডিসেম্বর একটি উত্তর -প্রকাশিত এমএটিএল সংকলক ব্যবহার করে এই উত্তরটি নিয়ে এসেছি , যা প্রকাশিত সংকলকের সাথে প্রায় একই, এই কোডটি একই।
ডেভিড

2
এছাড়াও, এটি কোনওভাবেই জনপ্রিয় অ্যাপল পোর্টেবল মিউজিক ডিভাইসের সমর্থন নয়: পি
ডেভিড

1
আমার oএই datenumফাংশনটির জন্য ব্যবহার করা উচিত ছিল :
লুইস মেন্ডো

আশ্চর্যজনক হত!
ডেভিড

1
@ ev3 কম্যান্ডার পিপিসিজির সর্বাধিক উত্তরগুলি অন্যান্য উত্তরগুলির মতো একই, বিশেষত এরকম ক্ষেত্রে যেখানে 4 টি কমান্ডই যথেষ্ট।
ডেভিড

1

পাওয়ারশেল ভি 2 +, 50 44 বাইট

$a,$b=$args-split','|%{date $_};($a-$b).Days

একটি স্ট্রিং হিসাবে ইনপুট আর্গুমেন্ট গ্রহণ করা, কমা তে এটি splits, তারপর পাইপ মাধ্যমে অ্যারের একটি বিল্ট-ইন ওরফে dateসংক্ষেপে Get-Dateমধ্যে .NET DATETIME বিন্যাস আমাদের স্ট্রিং রূপান্তর করবে। এই দুটি তারিখ তারপরে $aএবং একই সাথে সংরক্ষণ করা হবে $b। এরপরে আমরা প্রথম থেকে দ্বিতীয়টি বিয়োগ করতে একটি ওভারলোডেড-বিয়োগ-অপারেটর ব্যবহার করি এবং এর ফলাফল আউটপুট করি .Days

Golfed 6 বাইট ধন্যবাদ TessellatingHeckler

প্রযুক্তিগতভাবে অ-প্রতিদ্বন্দ্বিতাযোগ্য, কারণ এতে কোনও অনলাইন দোভাষী পাওয়া যায় না, যেহেতু পাওয়ারশেলের পশ এর FOSS বাস্তবায়ন পাওয়ারশেল v0.5 এর কাছাকাছি। এটি -splitএখনও সমর্থন করে না , জটিল .NET তারিখ কার্যকারিতাটি ছেড়ে দিন।


1

এক্সেল, 25 বাইট

=LEFT(A1,10)-RIGHT(A1,10)

এক্সেল স্বয়ংক্রিয়ভাবে তারিখ হিসাবে স্ট্রিং পরিচালনা করে।


0

জल्फ , 33 বাইট

শুধুমাত্র ক্রোমে কাজ করে। নন-কেপটিং, যেহেতু ভাষা পোস্টের তারিখের প্রশ্ন আপডেট করে। আমি পরে আরও বিশদ ব্যাখ্যা যুক্ত করব।

$S=$viGi', mDN~DH r}/m4SmeP"864"5

"ব্যাখ্যা"

$S=$viGi', mDN~DH r}
$S=$                 sets S equal to
    viGi',           take string input and reassign it to the comma-split input
           mD      } map with this function 
             N~DH r  return the time of the date of H (element)

/m4SmeP"864"5
/             divide
 m4S           subtraction applied to S (S[0] - S[1])
    meP"864"5  and 864 * 10 ^ 5 (thanks to Super Jedi for his nice constant)
              implicit output

আপনি কীভাবে আপনার শিরোনামে "নন-কেপেটিং" রেখেছেন?
ev3 কম্যান্ডার

0

ম্যাটল্যাব, 59 বাইট

s=strsplit(input(''),',');disp(datenum(s{1})-datenum(s{2}))

খুব সরল পদ্ধতি: ইনপুটটি কমান্ড উইন্ডো থেকে স্ট্রিং হিসাবে দিতে হবে। এরপরে ইনপুট স্ট্রিংটি বিভক্ত হয়ে যায় এবং তারিখগুলির মধ্যে দিনের সংখ্যা (এবং কিছুই না) সিরিয়াল তারিখের সংখ্যা থেকে গণনা করা হয়। আমি নিশ্চিত যে দুবার ডেটনাম কল করার প্রয়োজনীয়তা এড়াতে পারে এমন এক উপায় আছে ...


0

পাইথন 2, 109 113 বাইট

import datetime as d 
j=[d.date(*[int(k) for k in g.split('-')]) for g in raw_input().split(',')]
print j[0]-j[1]

0

টি-এসকিউএল + এসকিউএলসিএমডি, 51 বাইট

PRINT DATEDIFF(D,RIGHT('$(i)',10),LEFT('$(i)',10))

এসকিউএল সার্ভার 2008R2 দিয়ে পরীক্ষিত। কমান্ড লাইন আর্গুমেন্ট হিসাবে সরবরাহ করা ইনপুটটির সাথে $ (i) প্রতিস্থাপন করা হবে।

নমুনা রান:

sqlcmd -i script.sql -v i="2015-12-08,2016-01-01"
-24

0

গণিত, 61 বাইট

Print@First[#-#2&@@DateObject/@InputString[]~StringSplit~","]

বেসিক তারিখ বিয়োগ


0

পার্ল, এনপি পতাকাগুলির জন্য 91 86 + 2, 88 বাইট

ব্যবহারের তারিখ :: ক্যালকা qw (ডেল্টা_ডেস); ($ এ, $ বি) = বিভক্ত (/, /); $ _ = ডেল্টা_ডেস (বিভক্ত (/ - /, $ বি), বিভক্ত (/ - /, $ এ))

use Date::Parse;$_=str2time((split(/,/,$_))[0])-str2time((split(/,/,$_))[1]);$_/=86400

উদাহরণ

$ echo 2015-12-3,2015-12-1 | perl -npe 'use Date::Parse;$_=str2time((split(/,/,$_))[0])-str2time((split(/,/,$_))[1]);$_/=86400'
2

0

jq, 50 বাইট

(49 টি অক্ষর কোড + 1 অক্ষর কমান্ড লাইন বিকল্প)

./","|map(.+"T0:0:0Z"|fromdate)|(.[0]-.[1])/86400

নমুনা রান:

bash-4.3$ ~/bin/jq -R './","|map(.+"T0:0:0Z"|fromdate)|(.[0]-.[1])/86400' <<< '2015-12-3,2013-12-3'
730

অন-লাইন পরীক্ষা ( -Rইউআরএল পেরিয়ে যাওয়া সমর্থন করে না - সুতরাং ইনপুটটি "2015-12-3,2013-12-3" স্ট্রিং হিসাবে পাস করেছে))


0

গণিত, 56 বাইট

Print@#&@@-DateDifference@@InputString[]~StringSplit~","

বেশিরভাগ (সব?) তারিখ ফাংশনগুলি স্বয়ংক্রিয়ভাবে তারিখগুলিতে স্ট্রিং ইনপুটগুলি পার্স করার চেষ্টা করবে।



আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.