মেরি গল্ফমাস, সবাই!


35

এটি প্রত্যেকেরই বড়দিন, এবং উদযাপনের জন্য এখানে একটি কোড-গল্ফ চ্যালেঞ্জ। উপস্থাপনা প্রিন্ট করার জন্য আপনাকে একটি প্রোগ্রাম তৈরি করতে হবে। বিশেষত, "মেরি ক্রিসমাস" শব্দগুলি। কিন্তু, সেখানে একটি ক্যাচ রয়েছে: 25 ডিসেম্বর হলেই এই প্রোগ্রামটি অবশ্যই কাজ করবে। যদি কোডটি অন্য কোনও দিন চালিত হয় তবে প্রোগ্রামটি ক্রাশ হওয়া উচিত।

এটি কোড-গল্ফ, সুতরাং কমপক্ষে বাইটের জিতের উত্তর।

মেরি ক্রিসমাস!


5
হ্যাঁ এআর এমএমএমএমএম ছিল। .. হ্যাঁ 25 তম দুঃখিত
লিও


3
গোল্ফ কোডমাস ! :)
লুইস মেন্ডো

1
না, এটি একটি ক্রাশ হতে হবে। আপনি আবেদনটি ছাড়তে পারবেন না
লিও

2
@ ফিলনটপি: এই চ্যালেঞ্জগুলি আলাদা। এটি একটি কাউন্টডাউন চাইছে না এবং আউটপুট দেওয়ার জন্য অপেক্ষা করতে জড়িত নয়
লিও

উত্তর:


8

পাইকে, 21 বাইট

.dↄґ6C65h*325q/Al

এখানে চেষ্টা করুন!

     C65h*        -   multiply the day by the (current month + 1)
          325q    -  ^ == 325
    6         /   - 6 / ^
.dↄґ              -  load "merry christmas"
               Al - ^.capwords()

অথবা 18 বাইট অ-প্রতিযোগিতামূলক।

.dↄґ6Cs6Y1q/Al

এই বিভাগটি বাদে ঠিক একই:

Cs6Y1q 
C      -    get_time()
 s6    -   add 1 week
   Y   -  get day of the year
    1q - ^ == 1

এখানে চেষ্টা করুন!


30 শে অক্টোবর এটি ব্যর্থ হয়, তাই না?
ম্যাজিক অক্টোপাস উরন

1
@ কারাসোকম্পুটিং 30 * (10+1)= 330 নয় 325
নীল

6

জাভাস্ক্রিপ্ট, 55 53 46 বাইট

দ্রষ্টব্য: এটি কেবল গুগল ক্রোমে পরীক্ষা করা হয়েছে, প্রোগ্রামটি ব্রাউজার থেকে ব্রাউজারে (বা ডিভাইস থেকে ডিভাইস) আলাদা আচরণ করতে পারে

2 বাইট সংরক্ষণ করেছেন @ কনরও'ব্রায়েনকে ধন্যবাদ

7 বাইট সংরক্ষিত হয়েছে @ETHProductions ধন্যবাদ

alert(/c 25/.test(Date())?"Merry Christmas":a)

Uncaught ReferenceError: a is not definedতারিখ না থাকলে সাথে প্রস্থান করুন Dec 25। আমি নিশ্চিত না যে এটি ক্রাশ হিসাবে গণনা করা হয়েছে

alert(/c 25/.test(Date())?"Merry Christmas":a)


কীভাবে .slice(6,10)=="c 25"?
কনর ও'ব্রায়েন

@ কনরও'ব্রায়েন ধন্যবাদ! এটি স্মার্ট :)
ক্রিটসি লিথোস

@ ইথ প্রডাকশনগুলি আমি এমন কোনও দিন বা মাসের কথা ভাবতে পারি না যা শেষ হয় c( Octকাছে এসেছিল , তবে এখনও রেজেক্সটি সন্তুষ্ট করে না)। ভকভগক!
ক্রিটসি লিথোস

এর ফলাফলটি Date()সম্পূর্ণ বাস্তবায়ন নির্ভর। উদাহরণস্বরূপ, আমি আশা করি এটি মেশিনের ভাষা এবং অবস্থানের সাথে পরিবর্তিত হবে।
ওরিওল

@ অরিওল তারপরে আমি আমার উত্তরে ব্রাউজারটি নির্দিষ্ট করব
ক্রিটিক্সী লিথোস

5

পাইথন 3, 66 63 বাইট

জাভাস্ক্রিপ্ট / ইএস উত্তরগুলি থেকে ধারণাগুলি ধন্যবাদ এখানে আমি কিছু বাইট নিখুঁত করতে সক্ষম হয়েছি। একটি অভিধান সূচী - অস্তিত্বের কীগুলি উত্থাপন করবে a KeyError। নিম্নলিখিত কোড স্থানীয় সময় অঞ্চলে কাজ করে

import time;print({1:'Merry Christmas'}['c 25'in time.ctime()])

জন্য আউটপুট ফরম্যাট ctimeলোকেল নির্ভর নয় - বিন্যাস সর্বদা ~ 'Sun Dec 25 19:23:05 2016'। যেহেতু কেবল ডিসেম্বরেই 3-অক্ষরের সংক্ষিপ্তসার শেষ হয় c, তাই এটি 'c 25'in time.ctime()এখানে ব্যবহার করা নিরাপদ ।


পূর্ববর্তী সংস্করণ:

এটি ইউটিসি টাইম জোনে কাজ করে। স্থানীয় সময় অঞ্চলের জন্য একটি s/gm/localআরও 3 বাইট প্রয়োজন। পাইথন 2 এর printজন্য, 65 বাইটের জন্য বন্ধনীগুলি সরানো যেতে পারে ।

import time;print({(12,25):'Merry Christmas'}[time.gmtime()[1:3]])

নির্মাণ KeyErrorঅন্যান্য তারিখে নিক্ষেপ :

>>> import time;print({(1,1):'Happy New Year'}[time.gmtime()[1:3]])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: (12, 25)

অন্যান্য দিনগুলিতে এই দুর্ঘটনা ঘটে (এটি অনুমিত)?
এরেসেন

2
এটি চালানোর জন্য আমি এটি পেতে পারি না কারণ এটি কী হিসাবে টিপলের কাছে আপত্তি রয়েছে এটি অনলাইনে চেষ্টা করুন! । আপনি যদি এটিকে পরিবর্তন করে import time;print{'2512':'Merry Christmas'}[time.strftime("%d%m")]এবং পাইথন 2 লেবেল করেন তবে এটি এখনও 66 বাইট এবং 25 ডিসেম্বর ছাড়া অন্য তারিখগুলিতে কী-এরর দিয়ে ক্র্যাশ হয়ে গেছে
এলপিড্রো

@ এলপিড্রো ওফস: ডি হওয়া উচিত ছিল 1:3, আমি দুর্ঘটনাক্রমে আমার পরীক্ষার কোডটি অনুলিপি করেছিলাম
অ্যান্টি হাপালা

gmtime()আমার উত্তরের জন্য যখন আমি আপনার ধারণা ধার নিয়েছিলাম তখন তা তুলে নেওয়া হয়েছে । আশা করি আপনি আপত্তি করবেন না :-)
এলপেড্রো

5

পিএইচপি, 39 38 বাইট, প্রতিযোগিতা নয় (ক্রাশ হয় না)

<?=date(md)-1225?"":"Merry Christmas";

অথবা

<?date(md)-1225?die:0?>Merry Christmas

অথবা

<?=["Merry Christmas"][date(md)-1225];

কেউ কি 4 বাইট বন্ধ গল্ফ করতে পারেন date(Lz)%1001-358? : ডি
তিতাস

3
এই ক্রাশ না?
edc65

আপনি ""প্রথম কোডে ছেড়ে যেতে পারেন যা আপনাকে 2 বাইট সংরক্ষণ করে। যদি এটি জঘন্য লিপ বছরের জন্য না হয়, আপনি 25 শে ডিসেম্বর বছরের দিন সংখ্যা mdদ্বারা zএবং প্রতিস্থাপন করে 2 বাইট আরও বাঁচাতে পারতেন 1225
ইউটিএফ-8

1
একটি বিকল্প: eval((date(md)^TQZZ).'"Merry Christmas";');(43 বাইট)
ইসমাইল মিগুয়েল

1
@ ইউটিএফ -8: আপনার ঠিক আছে। আমি বেশিরভাগই বুলিয়ান মানগুলির জন্য এলভিস ব্যবহার করি; এবং এটি মুদ্রণ হবে 1। এটি গণনার ফলাফল মুদ্রণ করবে। এবং 0104-12251121.
টাইটাস

4

পাইথন 2 , 68 67 65 বাইট

-মদ্দিফিশকে ধন্যবাদ দিয়ে -1

অন্য দম্পতিকে রক্ষা করেছে এমন ধারণার জন্য @ অ্যান্টিহাপালাকে ধন্যবাদ।

import time;print['Merry Christmas'][(12,25)!=time.gmtime()[1:3]]

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

25 ডিসেম্বর না হলে একটি সূচিযন্ত্র নিক্ষেপ করে

59 বাইটের জন্য প্রতিদ্বন্দ্বিতামূলক সংস্করণ এটি কেবলমাত্র লিপ নন বছরের জন্য কাজ করে (বছরের দিনটি ব্যবহার করে যা এই বছর 360 তবে লিপ বছরে 361)

import time;print['Merry Christmas'][360!=time.gmtime()[7]]

আপনি টিউপলের পরিবর্তে একটি তালিকা ব্যবহার করে বাইট সংরক্ষণ করতে পারবেন না?
নীল

@ মিডিফিশ ধন্যবাদ, ভাল ধরা
এলপেড্রো

খুব ভাল, আমার ধারণাটি ছিল 2 অতিরিক্ত বাইট : পি
ফ্লিপট্যাক

ধন্যবাদ। এটি আমার by 67 বাইট সংস্করণ ছিল যতক্ষণ না আমি @ আন্টিহাপালার উত্তর সম্পর্কে মন্তব্য না করে এবং gmtime()একটি দম্পতি শেভ করার কথা ভাবি না । আমাকে স্বীকার করতে হবে, আমি আশা করি বছরের বছরের ধারণা নিয়ে আমি আরও কিছু করতে পারতাম।
এলপেড্রো

আপনি এতে 1 বাইট সংরক্ষণ করতে পারবেন: টাইম কোডটাইম () [6:10]! = 'সি 25'
সর্বোচ্চ

4

আর, 52 61 58 বাইট

`if`(format(Sys.Date(),"%m%d")=="1225","Merry Christmas",)

যদি বর্তমান তারিখটি 25 শে ডিসেম্বর না হয় তবে তৃতীয় কোনও যুক্তি সরবরাহ করা না হওয়ায় ত্রুটি ফিরে আসে if

সম্পাদনা করুন: একটি নির্বোধ ত্রুটি সংশোধন করা হয়েছে


আমার ছোট টাইপ সম্পর্কে দুঃখিত। আমি 25tg বলতে চাইছিলাম
লিও

এটি কেবল এই বছর যদিও কাজ করে!
এরেসেন

@ ইরেনসেন ঠিক আছে, নির্বোধ ভুল। এখনই স্থির।
বিলিউব

4

আমার এখানে প্রথমবারের মতো ... এই কাজের জন্য সর্বকালের সেরা ভাষা দিয়ে শুরু:

জাভা, 200 188 বাইট (@ ড্যানিয়েল গ্রেকে ধন্যবাদ), 186 বাইট মুদ্রণ থেকে "এলএন" অপসারণ করছে।

import java.util.*;public class a{public static void main(String[]r){Calendar c=Calendar.getInstance();if(!(c.get(2)==11&&c.get(5)==25)){int i=1/0;}System.out.print("Merry Christmas");}}

এখানে চেষ্টা করুন!


1
পিপিসিজিতে আপনাকে স্বাগতম! চমৎকার প্রথম পোস্ট, যদিও জাভা খুব ছোট নয়।
Rɪᴋᴇʀ

1
আপনি এর Calendarজন্য পরিবর্তন করতে পারেন *এবং কয়েকটি বাইট সংরক্ষণ করতে পারেন । argsমূল পদ্ধতিতে আপনি প্যারামিটারের নামও ছোট করতে পারেন , আমি মনে করি ...
ড্যানিয়েল গ্রে

@ ড্যানিয়েল গ্রে, আপনি একেবারে ঠিক বলেছেন, ধন্যবাদ!
বোনিফেসিও

1
স্বাগত! আপনি যদি "পাবলিক ক্লাস" কে "ইন্টারফেস" দিয়ে প্রতিস্থাপন করেন এবং প্রধান থেকে সরকারী পরিবর্তনকারীকে সরিয়ে ফেলেন তবে আপনি 10 বাইট সংরক্ষণ করতে পারবেন, তবে এটি কমপ্লেজাভা এটি চালাতে সক্ষম হতে বাধা দেবে অনলাইন।
জাভাদা

3

এমএটিএল , 34 33 বাইট

'Merry Christmas'IHh&Z'5U12h=?}Yl

এটি ভাষার বর্তমান সংস্করণে (19.7.0) কাজ করে। ত্রুটির কারণ হিসাবে, নীচের কোডটি এই সত্যটিকে কাজে লাগায় যে স্ট্রিংয়ের লগারিদম একটি ত্রুটি দেয় (এটি ভবিষ্যতের সংস্করণগুলিতে পরিবর্তিত হতে পারে)।

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

ব্যাখ্যা

'Merry Christmas'  % Push this string
IHh                % Push 3, then 2, concatenate: gives array [3 2]
&Z'                % Get 3rd and 2nd outputs of clock vector: current day and month
5U12h              % Push 5, square, push 12, concatenate: gives [25 12]
=                  % Compare if corresponding entries are equal in the two arrays
?                  % If all entries are equal: do nothing
}                  % Else
  Yl               %   Logarithm. Gives an error when applied on a string
                   % End (implicit). Display (implicit)

3

কিউবিআইসি , 48 বাইট

~left$$|(_D,5)=@12-25||?@Merry Christmas|\?a(12)

ব্যাখ্যা:

~             IF
left$$|(_D,5) the date string starts with
=@12-25|      the string "12-25"
|             THEN
?@Me..as|     PRINT "Merry Christmas"
\             ELSE
?a(12)        Print the twelfth index of an undefined array. 
              Since there are only 11 elements in undefined arrays, this 
              results in an index-out-of-bounds error.    
The the IF statement is auto-closed by QBIC.

এটি আমেরিকান MM-DDতারিখের স্বীকৃতি গ্রহণ করে। যদি আমি শেষ পর্যন্ত কিউবিসিতে একটি সাবস্ট্রিং ফাংশন করি তবে এটি সংক্ষিপ্ত হবে।


বড়দিন নয় এমন দিনে কী ঘটে? এটি অনুমিত হিসাবে ক্রাশ না?
এরেসেন

@ ইরেনসেন এটি এখনই করেন।
স্টেইনবার্গ

3

05AB1E ,32 21 বাইট

আদনানের স্ট্রিং সংকোচনের জন্য 11 বাইট সংরক্ষণ করা হয়েছে :)।

1žfže‚12D·>‚Q÷”ÞٌΔ×

ব্যাখ্যা

 žfže‚                Push [current month, current day]
      12D·>‚          Push [12, 25]
            Q         Push tmp = 1 if the two arrays are equal, tmp = 0 otherwise
1            ÷        Evaluate x = 1/tmp. If tmp = 0 a division by 0 exception is thrown
              ”ÞÙŒÎ”× Implicitly display "Merry Christmas" x times

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

আমি প্রথমে যা মনে মনে এসেছি তা করেছি, তাই এটির জন্য আরও ভাল পন্থা থাকতে পারে। তবে পিপিসিও 05AB1E তে একটি মেরি ক্রিসমাসের প্রাপ্য;)।


এছাড়াও, xসদৃশ এবং ডাবল জন্য সংক্ষিপ্ত :)।
আদনান

3

সি # / সিএস স্ক্রিপ্ট 106 100 99 বাইট

99 বাইট সমাধান

using System;int i;Console.WriteLine(DateTime.Now.ToString("dM")=="2512"?"Merry Christmas":i/0+"");

এখানে চেষ্টা করুন!

100 বাইট সমাধান (এটি পছন্দ করুন ... কিছুটা আলাদা)

using System;int i;Console.WriteLine(DateTime.Now.AddDays(7).DayOfYear==1?"Merry Christmas":i/0+"");

ব্যাখ্যা:

using System;
int i;

// if today plus 7 days is the first day of the year, then it's xmas!
Console.WriteLine(DateTime.Now.AddDays(7).DayOfYear==1
    ? "Merry Christmas"

// otherwise divide i by 0
    : i/0+"");

DateTime.Now.AddDays(7).DayOfYear==1এক বাইটের চেয়ে কম DateTime.Now.ToString("ddMM")=="2512"তবে 1 বাইট লম্বাDateTime.Now.ToString("dM")=="2512"


1
আপনি ব্যবহার করতে পারেন $"{DateTime.Now:dM}"=="2512"dMঅস্পষ্ট, তবে "2512" এর জন্য নয়।
কোবি

@ কোবি আমি সিএস স্ক্রিপ্টের জন্য স্ট্রিং ইন্টারপোলেশন ব্যবহার করতে পারি না :(
এরেসেন

1
আপনি যদি লিনকপ্যাড ব্যবহার করেন (উদাহরণস্বরূপ $"{DateTime.Now:dM}"=="2512"?"Merry Christmas":1/1-1+""55 বাইট) =)
কেনেথ কে।

কেন int iএবং মান্য না 1/0?
NoOneIs এখানে

1
@ এরেনসেন আহ, আমার ভুল আমি পর্যাপ্ত পরিমাণে পরীক্ষা করিনি। টুইট হয়েছে: $"{DateTime.Now:dM}"=="2512"?"Merry Christmas":"".Remove(1)(59 বাইট)
কেনেথ কে।

2

সি # / সিএস স্ক্রিপ্ট, 96 বাইট, বেশিরভাগই এরেসেনের কাছ থেকে চুরি করা হয়েছে

using System;Console.WriteLine(DateTime.Now.AddDays(7).DayOfYear==1?"Merry Christmas":1/0+"");

int iবিভাগটিকে কঠোর কোডিংয়ের পক্ষে ঘোষণাটি মুছে ফেলে । আমি এটিকে মন্তব্য হিসাবে ছেড়ে দেব তবে খ্যাতি নেই।


পিপিসিজিতে আপনাকে স্বাগতম! প্রথম প্রথম পোস্ট! মন্তব্য / উত্তর জিনিসটি নিয়ে চিন্তা করবেন না, এটি খুব বেশি গুরুত্বপূর্ণ নয়।
আর

2

ব্যাশ + ইউনিক্স ইউটিলিটিস, 51 49 47 বাইট

((`date +%m%d`-1225))&&${};echo Merry Christmas

* প্রতিধ্বনিতে থাকা উদ্ধৃতিগুলি সরানো যেতে পারে এবং শিরোনামের আকার 2 বাইট হ্রাস করার জন্য @ ইপ্পারসিসারকে ধন্যবাদ জানানোর জন্য @ কেনে-এনকে ধন্যবাদ জানাই।


এটি আমাকে bash: ${}: bad substitutionত্রুটি দেয় । এছাড়াও আপনি দুটি বাইট সংরক্ষণ করতে মেরি ক্রিসমাস থেকে উদ্ধৃতিগুলি ফেলে দিতে পারেন । অধিকন্তু, [ `date +%m%d` = 1225 ]&&echo Merry Christmasআমার জন্য কাজ করে, equaling আমার 45 বাইট
কেন ওয়াইএন

1
@ কেনওয়াই-এন ত্রুটিটি ইচ্ছাকৃত: ক্রিসমাস ব্যতীত অন্যান্য দিনে প্রোগ্রামটি ক্রাশ হওয়ার কথা । প্রতিধ্বনিতে উদ্ধৃতিগুলি বাদ দেওয়া যায় বলে উল্লেখ করার জন্য আপনাকে ধন্যবাদ; আমি সেটা মিস করছিলাম.
মিচেল স্পেক্টর

উফ, প্রয়োজনটি মিস! তারিখের স্ট্রিং পরিবর্তন করে পরীক্ষিত হয়েছিল এবং আমি এখন দেখছি যে এটি ক্রাশ হয় না। আমার উত্তর মোছা হয়েছে ... তবে, আমার একটি বিকল্প আছে, তাই আমাকে এটি আপডেট করতে দিন।
কেন YN

প্রতিস্থাপন করার চেষ্টা করুন ${}সঙ্গে !-আমার এক বাইট দ্বারা বীট। আপনি জিততে আমি আপনাকে upvote করব।
কেন YN

1
@ কেনওয়াই-এন ধন্যবাদ, তবে আমি $ {} এ পরিবর্তন করতে যাচ্ছি না! - যেহেতু আমি মনে করি যে পরবর্তীকর্তা কেবল কমান্ড লাইনে সঠিকভাবে কাজ করবে, কোনও স্ক্রিপ্টে নয় (যদি আপনি ইতিহাসের প্রতিস্থাপন চালু না করেন, যা অতিরিক্ত গ্রহণ করে অক্ষর)।
মিচেল স্পেক্টর 19

1

গ্রোভী, 57 বাইট

print new Date().format("Md")=="1225"?"Merry Christmas":b

25.12 ব্যতীত তারিখগুলিতে ক্রাশ। সঙ্গে groovy.lang.MissingPropertyExceptionকারণ bসংজ্ঞায়িত করা হয় না।


1

স্ট্যাকড , 42 বাইট

এখানে চেষ্টা করুন!

('Merry Christmas')'MMDD'date'1225'=¬#out

এটি নামের একটি একক-উপাদান অ্যারে তৈরি করে 'Merry Christmas!'। তারপরে, দিনটি মাসের পরে তারিখটিকে স্ট্রিংয়ে রাখে। এটি '1225'(ক্রিসমাস) সাথে সমতার জন্য পরীক্ষা করে , এর সাথে উল্টে যায় ¬, তারপরে পূর্ববর্তী অ্যারে থেকে সেই সদস্যটি পায়। যদি এটি ক্রিসমাস না হয় তবে এটি সূচী ত্রুটির সাথে ত্রুটি করবে। অন্যথায়, এটি মুদ্রণ Merry Christmas। (অন্যান্য দিনগুলিতে এটি কীভাবে কাজ করে তা দেখতে স্ট্রিংয়ের তারিখটি পরিবর্তন করুন))


1

ব্যাচ, 66 বাইট

@echo off
if %date:~0,5%==25/12 echo Merry Christmas&exit/b
if

পেছনের নিউলাইনটি তাৎপর্যপূর্ণ, কারণ এটি ifবিবৃতিটির বিশ্লেষণ ব্যর্থ হয়। আপনার স্থানীয় তারিখের ফর্ম্যাটটির সাথে মেলে তুলতে আপনাকে তারিখের চেকটি সামলানো দরকার।


1

পাইথন 2, 69 77 75 বা 72 70 বাইট

import time
if time.strftime("%d%m")=="2512":print"Merry Christmas"
else:1/0

এটি ক্রিসমাসের সময় কোনও ত্রুটি সহ প্রস্থান করে কিনা তা বিবেচনা না করে তবে:

import time
if time.strftime("%d%m")=="2512":print"Merry Christmas"
1/0

সম্পাদনা করুন:

আপনাকে একটি ত্রুটি বাড়াতে হবে বলে উল্লেখ করার জন্য @ Flp.Tkc ধন্যবাদ

স্ট্রফটাইম ফাংশন থেকে কলোন অপসারণ সম্পর্কে ইশারা করার জন্য @ ম্যাক্স থেকে -2 বাইটস


1
এটি ক্রিসমাস না হলে ক্র্যাশ বোঝানো হয়েছে, এটি কেবল স্বাভাবিকভাবেই প্রস্থান করে।
ফ্লিপট্যাক

আপনি কলোনগুলি অপসারণ করে 2 বাইট সংরক্ষণ করতে পারবেন -> '% d% m' == '2512'
সর্বোচ্চ

@ ম্যাক্স ঠিক আছে, টিপটির জন্য ধন্যবাদ। আমি এই ফাংশনটি আগে ব্যবহার করি নি, তাই আমি এটি করার কথা ভাবিনি
Sonrad10

আরও 3 বাইট সংরক্ষণ করুন: টাইম কোডটাইম () [6:10] == 'সি 25'
সর্বোচ্চ

1

সিজেম, 28

et[C25]#1="Merry Christmas"/

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

ব্যাখ্যা:

et                   push an array of current [year month day hour ...]
[C25]                push the array [12 25] (C=12)
#                    find the position of the 2nd array within the first one
1=                   compare it with 1, resulting in 1 for 1 and 0 otherwise
"Merry Christmas"/   split "Merry Christmas" into pieces of that length
                      (it crashes if the length is 0)
                     at the end, all the pieces are concatenated
                      and printed automatically

0

সি #। নেট, 180 172 171 বাইট

ক্রিটসি লিথোসকে ধন্যবাদ 8 টি বাইট সংরক্ষণ করা

ক্রিতিক্সী লিথোসকে আবার 1 টি বাইট সংরক্ষণ করা হয়েছে;)

namespace System{class P{static void Main(string[] args){var d=DateTime.Today;if(d.Day==25)if(d.Month>11){Console.Write("Merry Christmas!");return;}throw new Exception();}}}

বিকল্প, নিরবচ্ছিন্ন বৈকল্পিক:

namespace System //In System, so we don't have to use system.
{
    class Program
    {
        static void Main(string[] args) //Main function.
        {
            var d = DateTime.Today; //Get Today.
            if (d.Day == 25) if (d.Month == 12) //Day has to be 25th, Month has to be 12nd.
                {
                    Console.Write("Merry Christmas!"); return; //Prints.
                }
            throw new NotChristmasException(); //Errors/Crashes the program.
        }
    }
    class NotChristmasException : Exception { } //Holiday exception, hooray!
}

আপনি কি প্রোগ্রামটিকে একটি ছোট শ্রেণির নাম দিতে পারবেন না?
কৃতিমিক লিথোস

আপনি "নটক্রিস্টমাস এক্সসেপশন" কে আরও ছোট করে কিছু বাইট সরিয়ে ফেলতে পারেন।
লিও

@ ফিশপ্রোহডি NotChristmasExceptionএটি কেবলমাত্র বর্ণহীন রূপে রয়েছে।
devRicher

কৃতিক্সিলিথোস ধন্যবাদ, এটি পরিবর্তন করেছে
devRicher

1
if(d.Day==25&&d.Month>11)Console.Write(...);else throw new Exception()নোট মিলিত যদি বিবৃতি এবং চারপাশের ধনুর্বন্ধনী অপসারণের Console.Writeএবং প্রতিস্থাপন returnসঙ্গে else। পরিবর্তন var d=DateTime.Nowসম্ভবত আপনার সাথে ব্যতিক্রম নিক্ষেপ পরিত্রাণ পেতে পারেন args[-1];করতে args পুনঃনামকরনের পর aতাই a[-1];(অন্যত্র ব্যবহৃত শূন্য দ্বারা ভাগ করা হবে এই তাই অভিন্ন নয়)
pinkfloydx33

0

গণিত, 46 বাইট

If[Today[[1,2;;]]=={12,25},"Merry Christmas!"]

Now2 বাইট ওভার বাঁচায়Today
কেলি লোডার

এছাড়াও, আপনার মিথ্যা ফলাফলের ক্র্যাশ দরকার, তাই আমি মনে করি এর মতো কিছু করা উচিত Quit[]বা 1/0যথেষ্ট।
কেলি লোডার

0

কমন লিস্প, 140

(let((m(multiple-value-list(decode-universal-time(get-universal-time)))))(if(and(eq(nth 3 m)25)(eq(nth 4 m)12))(write"Merry Christmas")(c)))

তারিখটি সঠিক না হলে অপরিজ্ঞাত ফাংশন সহ ক্রাশ।


0

awk, 29 বাইট (+ দৈর্ঘ্য ("মেরি ক্রিসমাস"))

v=1225==strftime("%m%d")||1/0

এটি চালানো:

$ echo Merry xmas | awk 'v=1225==strftime("%m%d")||1/0'
awk: cmd. line:1: (FILENAME=- FNR=1) fatal: division by zero attempted

Asonতু শুভেচ্ছা পাইপ করা হয় awkstrftimeমাস + দিন (উদাহরণস্বরূপ 1226) প্রদান করে এবং এটি যদি 1225 $0রেকর্ডের সাথে মেলে তবে তা আউটপুট হয়ে যায়। তুলনার ফলাফলটি ভেরিতে 1225==1226স্থাপন করা vহয় যা তারিখ তুলনা ব্যর্থ হলে 1 টি ভাগ করতে ব্যবহৃত হয়।


0

হাস্কেল, 116

যদি এটি ক্রিসমাস না হয় তবে "ফাংশন এফ-বহির্ভূত নিদর্শনগুলি" সহ ক্র্যাশ।

import Data.Time
f(_,12,25)="Merry Christmas"
main=getZonedTime>>=print.f.toGregorian.localDay.zonedTimeToLocalTime

দুর্ভাগ্যক্রমে, এমন কোনও কার্য নেই যা আপনাকে অবিলম্বে একটি দরকারী বিন্যাসে সময় দেওয়ার অনুমতি দেয়, সুতরাং এর বেশিরভাগই তারিখের ফর্ম্যাটগুলিকে রূপান্তর করে।


0

সি #, 122 104 বাইট

18 বাইট সংরক্ষিত হয়েছে, @ রজনগুলকে ধন্যবাদ

using System;i=>{if(DateTime.Now.AddDays(7).DayOfYear==1)Console.Write("Merry Christmas");else{i/=0;};};

এটি বর্তমান দিনে 7 দিন যুক্ত করে এবং বছরের প্রথম দিন কিনা তা পরীক্ষা করে, হ্যাঁ, এটি "মেরি ক্রিসমাস" প্রদর্শন করে, অন্যথায় এটি শূন্য দ্বারা বিভক্ত হয়।


returnপ্রয়োজন নেই। iপরিবর্তে ব্যবহার করুন ()
রাজনগুল

0

রুবি, 69 বাইট

if Time.now.strftime("%j")=="360";puts "Merry Christmas";else 0/0;end

২০১ in সালে কাজ করে normal


0

ফোর্সলেং, 180 বাইট

set s datetime.toDateString datetime.now()
set t "Dec 25"
def c s.charAt i
def d t.charAt i
set i -1
label 1
set i 1+i
if i=6
 io.write "Merry Christmas!"
 exit()
if c=d
goto 1
z.z

(মনে রাখবেন যে datetime.toDateStringএটি স্থানীয়-নির্ভর, তাই এটি আপনার লোকালের উপর নির্ভর করে কাজ করতে পারে না)



0

বাশ কমান্ড লাইন, 45 48 49 48 বাইট

date +%m%d|grep -q 1225&&echo Merry Christmas||!-
date +%m%d|grep -q 1225||!-;echo Merry Christmas

মিচেল স্পেক্টর এর অনুরূপ , তবে grepএকটি ম্যাচ চেক করতে সাইলেন্ট মোডে ব্যবহার করুন, তারপরে &&এটি নিশ্চিত করবে যে এটি কেবল সাফল্যের উপরই মুদ্রণ করবে এবং এর ||সাথে ইতিহাস সন্ধান করার কারণগুলি !-যা আমাকে এটি দেয়:

-bash: !-: event not found

এবং এটি !- ; echo fooপ্রদর্শিত হিসাবে কার্যকর করা বন্ধ করে । bashডকুমেন্টেশন বলে !-nবর্তমান কমান্ড বিয়োগ বোঝায় n, যেমন যাতে সম্ভবত এটি ব্যাখ্যা করা হচ্ছে !-0, যা একটি অভিন্ন (এবং অ স্থানীয়) ত্রুটি বার্তা দেয়।


ভাল ধারণা, কিন্তু এটি ক্রিসমাস ব্যতীত অন্যান্য দিনগুলিতে ক্রাশ হয় না, যেমন এটি অনুমিত হওয়ার কথা, তাই না?
মিচেল স্পেক্টর

এটি এখন ব্যর্থতায় ত্রুটি দেয়।
কেন ওয়াইএন

1
এটি একটি ত্রুটি বার্তা প্রিন্ট করে তবে এটি অবিরত থাকে; এটি আসলে ক্রাশ হয় না। যদি আপনি প্রতিস্থাপন। $ {} এর সাহায্যে এটি আসলে ক্রাশ হবে বরং কেবল একটি ত্রুটি বার্তা মুদ্রণ করে চলছে। আমি মনে করি ক্রাশের সময় সেই প্রোগ্রামটি শেষ করা উচিত। আপনি বলতে পারেন যে আপনার শেষে একটি অতিরিক্ত "; ইকো এক্স" রেখে এবং এটি কার্যকর হয়েছে তা দেখে আপনার অবসান হয় না। (এই কারণেই আমি আমার উত্তরে $ {used ব্যবহার করেছিলাম I) আমি জানি না যে আপনি কিছু 1- বা 2-চরিত্রের ক্রম ব্যবহার করতে পারেন যা একটি প্রকৃত ক্রাশের কারণ হতে পারে।
মিচেল স্পেক্টর

@ মিচেলস্পেক্টর: আমি একটি 2 চরিত্রের অনুক্রম পেয়েছি!
কেন YN

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